PHP Handbuch

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

Herausgegeben von

Egon Schmid

Bei der Übersetzung wirkten mit:
Sebastian Bergmann
Wolfgang Drews
Ralf Ebert
Thomas Fromm
Johann-Peter Hartmann
Hartmut Holzgraefe
Martin Jansen
Michael Kaiser
Mark Kronsbein
Sven Lauer
Jan Lehnardt
Catharina Paulsen
Peter Petermann
Martin Samesch
Egon Schmid
Holger Schranz
Thomas Schürmann
Uwe Steinmann
Christian Ullrich

Copyright © 1997, 1998, 1999, 2000, 2001 von der PHP-Dokumentationsgruppe

Inhaltsverzeichnis
Vorwort
Über dieses Handbuch
I. Einführung
1. Einleitung
2. Installation
3. Konfiguration
4. Sicherheit
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. Features
15. Fehlerbehandlung
16. Erzeugen und Verändern von Bildern
17. HTTP-Authentifizierung mit PHP
18. Cookies
19. Steuerung von Dateiuploads
20. Using remote files
21. Verbindungssteuerung
22. Persistente Datenbankverbindungen
IV. Funktionsreferenz
I. Apache-spezifische Funktionen
II. Array Funktionen
III. Aspell Funktionen
IV. Mathematische Funktionen mit beliebiger Genauigkeit
V. Bzip2 Compression Functions
VI. Kalender-Funktionen
VII. CCVS API Functions
VIII. COM Support Funktionen für Windows
IX. Klassen- und Objekt-Funktionen
X. ClibPDF Funktionen
XI. CURL, Client URL Library Functions
XII. Cybercash Bezahl Funktionen
XIII. Character type functions
XIV. Datenbank (dbm-style) Abstraktions Funktionen
XV. Datums- und Zeit-Funktionen
XVI. dBase Funktionen
XVII. DBM Datenbankfunktionen
XVIII. Verzeichnis-Funktionen
XIX. DOM XML Funktionen
XX. Error Handling and Logging Functions
XXI. filePro Funktionen
XXII. Funktionen des Dateisystems
XXIII. Forms Data Format functions
XXIV. FTP-Funktionen
XXV. Function Handling functions
XXVI. GNU Gettext
XXVII. GMP functions
XXVIII. HTTP-Funktionen
XXIX. Hyperwave functions
XXX. ICAP Functions
XXXI. Grafik-Funktionen
XXXII. IMAP, POP3 und NNTP Funktionen
XXXIII. Informix functions
XXXIV. InterBase-Funktionen
XXXV. Ingres II functions
XXXVI. LDAP functions
XXXVII. Mail Funktionen
XXXVIII. Mathematische Funktionen
XXXIX. MCAL Funktionen
XL. Mcrypt Encryption Functions
XLI. Hash Funktionen
XLII. Microsoft SQL Server Funktionen
XLIII. Ming functions for Flash
XLIV. Sonstige Funktionen
XLV. mnoGoSearch Functions
XLVI. mSQL functions
XLVII. MySQL Funktionen
XLVIII. Netzwerk Funktionen
XLIX. ODBC Funktionen
L. Oracle 8 functions
LI. OpenSSL functions
LII. Oracle Funktionen
LIII. Ovrimos SQL functions
LIV. Output Control Functions
LV. PDF Funktionen
LVI. Verisign Payflow Pro functions
LVII. PHP Optionen und Informationen
LVIII. POSIX Funktionen
LIX. PostgreSQL Funktionen
LX. Program Execution functions
LXI. Pspell Functions
LXII. GNU Readline
LXIII. GNU Recode functions
LXIV. Regular Expression Functions (Perl-Compatible)
LXV. Reguläre Ausdrücke Funktionen (POSIX erweitert)
LXVI. Satellite CORBA client extension
LXVII. Semaphor und Shared Memory Funktionen
LXVIII. SESAM Datenbankfunktionen
LXIX. Session Funktionen
LXX. Shared Memory Functions
LXXI. Shockwave Flash functions
LXXII. SNMP functions
LXXIII. Socket functions
LXXIV. String-Funktionen
LXXV. Sybase functions
LXXVI. URL functions
LXXVII. Variablen-Funktionen
LXXVIII. WDDX functions
LXXIX. XML parser functions
LXXX. XSLT functions
LXXXI. YAZ functions
LXXXII. YP/NIS Functions
LXXXIII. Zlib Compression Functions
V. PEAR: the PHP Extension and Application Repository
VI. Anhang
A. Migrating von PHP/FI 2.0 zu PHP 3.0
B. Migrating from PHP 3.0 to PHP 4.0
C. PHP development
D. Der PHP-Debugger
E. PHP reserved words
F. PHP's resource types
Vor
Vorwort


Vorwort

Inhaltsverzeichnis
Über dieses Handbuch

PHP ist die Abkürzung für "PHP: Hypertext Preprocessor", eine Skriptsprache, die sich in HTML einbinden lässt. Viele der syntaktischen Möglichkeiten sind den Programmiersprachen C, Java und Perl entnommen und es wurden auch einige PHP-spezifische Features entwickelt. Das Ziel der Sprache ist es, das Schreiben von Programmen zur Erzeugung von dynamisch generierten Seiten zu erleichtern und zu beschleunigen.

Über dieses Handbuch

Dieses Handbuch ist in XML geschrieben und verwendet die DocBook XML DTD und DSSSL (Document Style and Semantics Specification Language) für die Formatierung. Die Tools zur Transformation in HTML, TeX und RTF sind Jade von James Clark und die Modularen DocBook Stylesheets von Norman Walsh. Die Programme zur Herstellung des PHP Handbuchs werden von Stig Sæther Bakken gepflegt.

Dieses HTML Handbuch wird jeden Tag neu erzeugt und kann bei http://snaps.php.net/manual/ bezogen werden.

Zurück | Anfang | Vor
PHP Handbuch |  | Einführung


Einführung

PHP Handbuch
Zurück Vor

I. Einführung

Inhaltsverzeichnis
1. Einleitung
2. Installation
3. Konfiguration
4. Sicherheit
Zurück | Anfang | Vor
Vorwort |  | Einleitung


Einleitung

PHP Handbuch
Zurück Vor

Kapitel 1. Einleitung

Inhaltsverzeichnis
Was ist PHP?
Was kann PHP?
Eine kurze Entstehungsgeschichte von PHP

Was ist PHP?

PHP (offiziell: "PHP: Hypertext Preprocessor") ist eine server-seitige, in HTML eingebettete Skriptsprache.

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>

Dieser Skript unterscheidet sich von einem CGI-Skript, der in einer Sprache 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 client-seitigen Sprachen wie Javaskript unterscheidet, ist dass der Code vom Server ausgeführt wird. Sollten sie einen Skript wie den obigen auf ihrem Server ausführen, würde der Besucher nur das Ergebnis empfangen, ohne die Möglichkeit zu haben, 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.

Zurück | Anfang | Vor
Einführung | Hoch | Was kann PHP?


Was kann PHP?

Prinzipiell kann PHP alles, was jedes andere CGI Programm kann, also z. B. Formulardaten sammeln, dynamischen Inhalt für Websites generieren oder Cookies senden und empfangen.

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

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

PHP unterstützt auch die Kommunikation mit anderen Diensten durch Protokolle wie IMAP, SNMP, NNTP, POP3 oder auch HTTP. Sie können auch Netzwerk-Sockets direkt benutzen und mit Hilfe anderer Protokolle interagieren.

Zurück | Anfang | Vor
Einleitung | Hoch | Eine kurze Entstehungsgeschichte von PHP


Eine kurze Entstehungsgeschichte von PHP

PHP wurde irgendwann im Herbst des Jahres 1994 von Rasmus Lerdorf konzipiert. Frühe, nicht veröffentlichte Versionen wurden auf seiner Homepage genutzt, um die Leser seiner Online-Bewerbung festzustellen. Die erste Version, die von anderen genutzt wurde, war Anfang 1995 verfügbar und wurde unter dem Namen "Personal Home Page Tools" bekannt. Sie bestand aus einem extrem simplifizierten Parser, der ausschließlich einige spezielle Makros verstand, und einigen Werkzeugen, die damals häufig auf Homepages genutzt wurden: ein Gästebuch, ein Counter und einige andere. Der Parser wurde Mitte 1995 neu programmiert und in PHP/FI umbenannt. Das FI kam von einem anderen Paket, dass Rasmus geschrieben hatte und das HTML-Formulardaten interpretierte. Er kombinierte die "Personal Home Page Tools"-Skripts mit dem "Formular-Interpreter", fügte noch mSQL-Unterstützung hinzu und PHP/FI war geboren. PHP/FI wuchs mit unglaublicher Geschwindigkeit und immer mehr Leute begannen Code beizusteuern.

Es ist schwierig, harte Fakten zu liefern, aber es wird angenommen, dass PHP/FI Ende 1996 für mindestens 15.000 Websites auf ganzen Welt genutzt wurde. Mitte 1997 ist diese Zahl auf über 50.000 angewachsen. Um die gleiche Zeit gab es auch Veränderungen in der Weiterentwicklung von PHP. Es wandelte sich von Rasmus kleinem Privatprojekt, zu dem eine Handvoll Programmierer beigetragen hatte, zu einem wesentlich besser organisierten Anstrengung eines Teams. Von Zeev Suraski und Andi Gutmans wurde der Parser von Grund auf neu geschrieben und bildete die Basis für PHP Version 3. Eine Menge des Codes der PHP/FI-Werkzeuge wurde auf PHP3 portiert und eine Menge wurde komplett neu erstellt.

Heute (Ende 1999) wird PHP/FI oder PHP3 mit einigen kommerziellen Produkten wie z. B. dem StrongHold Webserver von C2 und RedHat Linux vertrieben. Eine vorsichtige Schätzung, basierend auf einer Hochrechnung der Zahlen, die von NetCraft veröffentlicht wurden, sagt aus, dass PHP für 150.000 Websites auf der ganzen Welt genutzt wird. Um das in Relation zu setzen: das sind mehr Sites, als auf Netscapes Flaggschiff, dem "Enterprise Server", laufen.

Während das hier geschrieben wird, ist PHP auf dem Weg zur nächsten Generation, welche die mächtige Zend Scripting-Engine nutzen wird, um höhere Geschwindigkeit zu erreichen, und auch mit anderen Servern als dem zur Zeit unterstützten Apache Server als natives Modul laufen wird.

Zurück | Anfang | Vor
Was kann PHP? | Hoch | Installation


Installation

PHP Handbuch
Zurück Vor

Kapitel 2. Installation

Inhaltsverzeichnis
Download der aktuellsten Version
Installation auf UNIX Systemen
Installation auf Windows 95/98/NT Systemen
Probleme?

Download der aktuellsten Version

Den Quellcode sowie die Binärdistributionen für die verschiedenen Plattformen (inklusive Windows) erhalten Sie unter http://www.php.net/.

Zurück | Anfang | Vor
Eine kurze Entstehungsgeschichte von PHP | Hoch | Installation auf UNIX Systemen


Installation auf UNIX Systemen

Dieser Abschnitt wird Sie durch die Konfiguration und Installation von PHP führen. Erforderliche Kenntnisse und Software:

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

  • Einen ANSI C compiler

  • Einen Web Server

"Quick Installation"- Anleitung (Apache Modul Version)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-3.0.x.tar.gz
4.  tar xvf php-3.0.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-3.0.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
13. make
14. make install

  Sie können aber auch alternativ zu oben beschriebenen Schritt
  einfach die httpd binary auf Ihre existierende Binary übertragen In
  jedem Fall sollte darauf geachtet werden, den Server vorher
  herunterzufahren.

15. cd ../php-3.0.x
16. cp php3.ini-dist /usr/local/lib/php3.ini

  Sie können nun die php.ini unter /usr/local/lib/php3.ini editieren,
  um Ihre gewünschten PHP-Optionen einzustellen. Wenn Sie die php.ini
  lieber in einem anderen Verzeichnis haben möchten, dann sollten Sie
  Sie in Schritt 8 --with-config-file-path=/path angeben.

17. Editieren Sie nun Ihre httpd.conf or srm.conf folgendermassen:

            AddType application/x-httpd-php3 .php3

    Es bleibt Ihnen völlig freigestellt, welche File-Extension Sie
    hier benutzen. ".php3" wird von uns lediglich empfohlen.

18. Starten Sie den Apache Web Server. Sie müssen den Server starten
    und beenden, ein einfacher Reload mittels des HUP oder USR1
    Signales ist nicht ausreichend.

Konfiguration

Es gibt zwei Möglichkeiten PHP zu konfigurieren.

  • Sie können das mitgelieferte "Setup"- Skript von PHP benutzen. Dieses Skript wird Ihnen eine handvoll Fragen stellen (ähnlich dem "Install"- Skript von PHP/FI 2.0) und am Ende "configure" ausführen. Um dieses Skript auszuführen, geben Sie ./setup ein.

    Dieses Skript wird zusätzlich eine Datei namens "do-conf" erstellen, welches die Konfigurations-Optionen enthält, die "configure" übermittelt wurden. Um später noch änderungen in der Konfiguration vorzunehmen, können Sie einfach diese Datei editieren, ohne ein erneutes Setup ausführen zu müssen. Geben Sie hierzu ./do-conf ein, um PHP mit den neuen Optionen zu konfigurieren.

  • Die Alternative ist "configure" manuell auszuführen. Um zu sehen, welche Optionen "configure" bietet, geben Sie ./configure --help ein.

Details über einige der verschiedenen Konfiguratrions- Optionen sind weiter unten aufgeführt.

Apache Modul

Um PHP als Modul in den Apache einzukompilieren, antworten Sie bitte "yes" auf die Frage "Build as an Apache module?" (die --with-apache=DIR option zu konfigurieren) und geben Sie das Stammverzeichnis der Apache Distribution an. Wenn Sie also die Apache Distribution in /usr/local/www/apache_1.2.4, entpackt haben, dann ist dieses Ihr Stammverzeichnis. Das Standart-Stammverzeichnis ist /usr/local/etc/httpd.

fhttpd Module

Um PHP als fhttpd Modul in den Apache einzukompilieren, antworten Sie "yes" auf die Frage "Build as an fhttpd module?" (die --with-fhttpd=DIR Option zu konfigurieren) und geben Sie das fhttpd source Stammverzeichnis an. Das Standartverzeichnis ist /usr/local/src/fhttpd. Wenn Sie fhttpd benutzen, wird PHP als Modul performanter und besser kontrollierbar und besitzt mehr Fähigkeiten zur Remote-Ausführung.

CGI version

Standartmäßig wird PHP als CGI-Programm installiert. Wenn Sie einen Webserver betreiben, auf dem PHP Module unterstützt werden, dann sollten Sie diese Variante aus Performancegründen den Vorzug geben. Wie auch immer, die CGI-Variante erlaubt es dem Apache Benutzer, verschiedene PHP-unterstützte Seiten unter verschiedenen Benutzer ID's zu ermöglichen. Sie sollten jedoch daran denken, sich mit den Sicherheitseinstellungen im Security chapter vertraut zu machen, wenn Sie PHP in der CGI - Variante einsetzen wollen.

Database Support Options

PHP unterstützt von Haus aus eine große Anzahl an Datenbanken (wie auch ODBC):

Adabas D

      --with-adabas=DIR

Kompiliert mit Adabas D Unterstützung. Parameter sind das Adabas D Installations-Verzeichnis. Standartmäßig ist dieses auf /usr/local/adabasd gesetzt.

Adabas home page

dBase

      --with-dbase

Schaltet die Unterstützung für DBase ein. Externe Bibliotheken werden nicht benötigt.

filePro

      --with-filepro

Schaltet die Unterstützung für FilePro ein. Nur Lese- Unterstützung. Externe Bibliotheken werden nicht benötigt.

mSQL

      --with-msql=DIR

Schaltet die Unterstützung für mSQL-Datenbanken ein. Das Parameter für diese Option ist das mSQL-Installations-Verzeichnis, standartmäßig unter /usr/local/Hughes . Dieses ist das Standartverzeichnis der mSQL2.0 Distribution. configure erkennt automatisch die Version von Ihrem mSQL, PHP unterstützt sowohl Version 1.0 wie auch 2.0 . Wenn Sie PHP mit mSQL 1.0 kompilieren, können Sie aber auch nur auf mSQL 1.0 zugreifen und vica versa.

See also mSQL Configuration Directives in the configuration file.

mSQL home page

MySQL

      --with-mysql=DIR

Aktiviert die die MySQL-Unterstützung. Als Parameter kann bei dieser Option das MySQL-Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

Siehe auch: MySQL Konfiguration Direktiven in der Konfigurations- Datei.

MySQL home page

iODBC

      --with-iodbc=DIR

Aktiviert die iODBC-Unterstützung. Dieses Merkmal wurde erstmals für den iODBC-Treiber-Manager entwickelt, ein frei verteilbarer ODBC-Treiber-Manager, der unter vielen UNIX-Derivaten läuft. Als Parameter zu dieser Option kann das iODBC-Installations-Verzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

FreeODBChome page or iODBC home page

OpenLink ODBC

      --with-openlink=DIR

Aktiviert die OpenLink ODBC-Unterstützung. Als Parameter kann bei dieser Option das OpenLink ODBC Installations-Verzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/openlink gesetzt.

OpenLink Software's home page

Oracle

      --with-oracle=DIR

Aktiviert die Oracle-Unterstützung. Diese Option wurde getestet, und sollte zumindest mit den Orcale-Versionen 7.0 bis 7.3 laufen. Als Parameter kann das ORACLE_HOME Verzeichnis angegeben werden. Sie müssen diesen Parameter aber nicht angeben, wenn die Oracle-Umgebung gesetzt wurde.

Oracle home page

PostgreSQL

      --with-pgsql=DIR

Aktiviert die PostgresSQL-Unterstützung. Als Parameter kann bei dieser Option das PostgresSQL- Basisinstallationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/pgsql gesetzt.

Siehe auch: Postgres Konfiguration Direkiven in der Konfigurations- Datei.

PostgreSQL home page

Solid

      --with-solid=DIR

Aktiviert Solid-Unterstützung. Als Parameter kann das Solid Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/solid gesetzt.

Solid home page

Sybase

      --with-sybase=DIR

Aktiviert Sybase-Unterstützung. Als Parameter kann das Sybase Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /home/sybase gesetzt.

Siehe auch: Sybase Konfiguration Direktives in der Konfigurations- Datei.

Sybase home page

Sybase-CT

      --with-sybase-ct=DIR

Aktiviert Sybase-CT Unterstützung. Als Parameter kann das Sybase-CT Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /home/sybase gesetzt.

See also Sybase-CT Configuration Directives in the configuration file.

Velocis

      --with-velocis=DIR

Aktiviert Velocis Unterstützung. Als Parameter kann das Velocis Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/velocis gesetzt.

Velocis home page

Eine benutzerdefinierte ODBC Bilbliothek

      --with-custom-odbc=DIR

Aktiviert Unterstützung für eine benutzerdefinierte ODBC-Bibliothek. Als Parameter kann das Basisverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

Diese option verlangt, dass Sie zuvor eigene CUSTOM_ODBC_LIBS definiert haben, bevor Sie das Konfigurationsskript starten. Ebenfalls müssen Sie einen gültiger odbc.h Header irgendwo in in Ihrem Include-Pfad haben. Wenn Sie keinen haben, erstellen Sie ihn und schließen Sie diesen spezifischen Header mit ein. Ihr Header mag auch einige extra- Definitionen verlangen, besonders wenn es sich um eine Mehrbenutzer-Plattform handelt. Definieren Sie diese in CFLAGS.

Zum Beipspiel können Sie Sybase SQL überall auf QNX wie folgt benutzen: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50

Unified ODBC

      --disable-unified-odbc

Deaktiviert das "Unfified ODBC Modul", bei welchem es sich um ein allgemeines Interface für Datenbanken mit ODBC-Interfaces handelt (z.B. für Solid und Adabas D). Es arbeitet auch mit normalen ODBC-Bibliotheken zusammen. Es wurde getestet mit iODBC, Solid, Adabas D und Sybase SQL. Hierbei ist es erforderlich, dass eines (nur eines) dieser Module oder das Velocis Modul aktiviert sind, oder eine benutzerdefinierte ODBC-Bibliothek spzifiziert ist. Diese Option steht nur zur Verfügung, wenn eine der folgenden Parameter verwendet wurden: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc.

Siehe auch: Unified ODBC Konfiguration Direktiven in der Konfigurations Datei.

LDAP

      --with-ldap=DIR

Aktiviert die LDAP (Lightweight Directory Access Protocol)Unterstützung. Als Parameter kann das LDAP Standart Installationsverzeichnis angegeben werden, welches standartmäßig auf /usr/local/ldap gesetzt ist.

Zusätzliche Informationen zu LDAP sind unter RFC1777 und RFC1778 verfügbar.

Weitere Konfigurations-Optionen

--with-mcrypt=DIR

      --with-mcrypt

Aktiviert die Unterstützung für die mycrypt Bibliothek. Siehe auch mcrypt Dokumentation für weitere Informationen. Wenn Sie das optionale DIR Argument benutzen, wird PHP in DIR/include nach mycrypt.h suchen.

--enable-sysvsem

      --enable-sysvsem

Aktiviert die Unterstützung für Sys V Semaphores (wird von den meisten UNIX-Derivaten unterstüzt). Siehe auch Semaphore und Shared Memory Dokumentation für weitere Informationen.

--enable-sysvshm

      --enable-sysvshm

Aktiviert die Unterstützung für Sys V Shared Memory (wird von den meisten UNIX-Derivaten unterstützt). Siehe auch Semaphore und Shared Memory Dokumentation für weitere Informationen.

--with-xml

      --with-xml

Aktiviert die Unterstützung für einen "nicht-validierenden" XML-Parser auf Basis von James Clarks's expat library. Siehe auch XML Funktions-Referenz für mehr Details.

--enable-maintainer-mode

      --enable-maintainer-mode

Aktiviert Extra- Dependenzen und Compiler Warnungen, welche von einigen PHP Entwicklern benutzt werden.

--with-system-regex

      --with-system-regex

Benutzt mehr die System Bibliothek für Regular Expression als als die gebündelte. Wenn Sie PHP als Servermodul benutzten, müssen Sie die gleiche Bibliothek bei der Installtion von PHP wie beim Linking des Servers verwenden. Aktivieren Sie diese Option, wenn die System-Bibliothek Features beinhaltet, die Sie unbedingt benötigen. Es wird jedoch empfohlen, die beiliegende Bibliothek wenn möglich zu benutzen.

--with-config-file-path

      --with-config-file-path=DIR

Mit dieser Option kann das Verzeichnis angegeben werden, in dem PHP nach der PHP.INI (Die Konfigurations Datei) sucht, wenn PHP gestartet wird.

--with-exec-dir

      --with-exec-dir=DIR

Erlaubt die Ausführung von ausführbaren Dateien in einem Verzeichnis nur, wenn PHP im safe mode betrieben wird. Standartmäßig ist dieses Verzeichnis /usr/local/bin. Diese Option setzt den Pfad nur auf den Standartwert. Wenn dieser geändert werden soll, kann dieses mit der safe_mode_exec_dir Direktive in der Konfigurations Datei später geändert werden.

--enable-debug

      --enable-debug

Aktiviert extra debug Informationen. Dieses ermöglicht es, genauere Informationen zu erhalten, wenn Probleme mit PHP auftreten. (Bedenken Sie, dass diese Option nichts mit Debugger-Fähigkeiten oder Informationen, die zu PHP-Skripten erhätlich sind, zu tun hat).

--enable-safe-mode

      --enable-safe-mode

Aktiviert "safe mode" standartmäßig. Diese Option zieht einige Restriktionen betreffend den Möglichkeiten von PHP nach sich, so z.B. das Öffnen von Dateien nur im DocumentRoot zu erlauben. Lesen Sie auch Security chapter für weitergehende Informationen. CGI-Benutzer sollten "safe mode" immer aktivieren. Diese Option setzt nur die standartmäßige Behandlung von PHP. Sie kann später per safe_mode Direktive in der Konfigurations Datei geändert werden.

--enable-track-vars

      --enable-track-vars

Aktiviert PHP_TRACK_VARS. Ermöglicht PHP zu verfolgen, von wo GET/POST/COOKIES Variablen in den Arrays HTTP_GET_VARS, HTTP_POST_VARS und HTTP_COOKIE_VARS kommen. Diese Option setzt lediglich den Standartwert, welcher später mit der track_vars Direktive in der Konfigurations Datei aktiviert bzw. deaktiviert werden kann.

--enable-magic-quotes

      --enable-magic-quotes

Aktiviert magic quotes. Diese Option setzt nur einen Standartwert. Die Option kann später mit der magic_quotes_runtime Direktive in der Konfigurations Datei aktiviert bzw. deaktiviert werden. Siehe auch die magic_quotes_gpc und die magic_quotes_sybase Direktiven.

--enable-debugger

      --enable-debugger

Aktiviert die interne PHP Debugger Unterstützung. Dieses Merkmal ist immer noch im Experimentier- Stadium. Siehe auch Debugger Konfiguration Direktiven in der Konfigurationsdatei.

--enable-discard-path

      --enable-discard-path

Wenn diese Option aktiviert ist, kann die PHP CGI-Binär-Datei sicher ausserhalb des Web-Verzeichnisses plaziert werden, und niemand wird .htaccess-Sicherheit umgehen können. Lesen Sie die Sektion im Sicherheitskapitel über diese Option.

--enable-bcmath

      --enable-bcmath

Aktiviert bc mathematische Funktionen zur Präzesion. Siehe auch bcmath.scale Option in der Konfigurationsdatei.

--enable-force-cgi-redirect

      --enable-force-cgi-redirect

Aktiviert den Sicherheits-Check für interne Server-Redirects. Sie sollten dieses Option aktivieren, wenn Sie die CGI-Version mit dem Apache benutzen.

Wenn Sie PHP als CGI Binärdatei benutzen, überprüft PHP selber zuerst immer, ob es als Redirekt benutzt wird (z.B. unter Apache mittels Action Direktiven). Dieses stellt sicher, dass PHP in dieser Variante nicht missbraucht werden kann, um Authentifizierungsmodelle des Webservers über direkte Aufrufe wie http://my.host/cgi-bin/php/secret/doc.html zu umgehen. Dieses Beispiel greift zwar auf http://my.host/secret/doc.html zu, aber berücksichtigt keine Sicherheitseinstellungen die durch die Directory-Einstellungen /secret in der httpd gesetzt wurden.

Wenn Sie diese option nicht aktivieren, erlauben Sie das Umgehen von httpd Sicherheits- und Authentifizierungs- Einstellungen. Tun Sie dieses nur, wenn Ihre Serversoftware nicht fähig ist, zu erkennen, ob ein sicherer Redirect erfolgt ist und alle ihre Dateien unterhalb des Document- Root und Benutzer-Verzeichnisse für jedermann zugänglich sein sollen / können.

Lesen Sie die Sektion im Sicherheits-Kapitel um mehr über diese option zu erfahren.

--disable-short-tags

      --disable-short-tags

Deaktiviert die Kurzform <? ?> PHP Tags. Sie müssen diese Option deaktivieren, wenn Sie PHP im Zusammanhang mit XML benutzen wollen. Wenn Sie die Kurzform deaktiviert haben, ist die einzige gültige Syntax für PHP-Code-Tags <?php ?>. Diese Option setzt nur den Standartwert. Die Option kann später in der short_open_tag Direktive in der Konfigurationsdatei geändert werden.

--enable-url-includes

      --enable-url-includes

Erlaubt es, Programme direkt von anderen HTTP- oder FTP- Servern mittels include() laufen zu lassen. Siehe auch include_path Option in der Konfigurationsdatei.

--disable-syntax-hl

      --disable-syntax-hl

Deaktiviert Syntax-Highlighting.

CPPFLAGS and LDFLAGS

Um die PHP-Installation dazu zu veranlassen in verschiedenen Verzeichnissen für Header unf Bibliotheken zu suchen, modifizieren Sie die CPPFLAGS und LDFLAGS Umgebungsvariablen. Wenn Sie eine sensible shell benutzen, sollte es möglich sein folgendes zu tun: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure

Building

Wenn PHP fertig konfiguriert ist, können Sie die CGI-ausführbare Datei oder PHP-Bibliothek gerstellen. Das Kommando make sollte das für Sie erledigen. Wenn dieser Weg fehlschlägt, und Sie nicht herausfinden können warum, schauen Sie hier nach Problem- Sektion.

Testing

Wenn Sie PHP als CGI-Programm gergestellt haben, können Sie das Programm mit make test testen. Es ist immer eine gute Idee, Ihr Programm zu testen. So können Sie ein Problem möglicherweise früher erkennen und beseitigen.

Benchmarking

Wenn Sie PHP als CGI-Programm hergestellt haben, können Sie mit make bench ein Benchmark Test machen. Bedenken Sie, dass wenn der safe_mode standartmäßig aktiviert wurde, es sein kann, dass der Benchmark nicht fähig ist, den Benchmark zu vollenden, wenn der Vorgang länger als 30 Sekunden (die erlaubt sind) dauert. Dieses kommt daher, weil die Funktion set_time_limit() im safe_mode nicht benutzt werden kann. Benutzten Sie die max_execution_time Konfigurationseinstellungen um die Zeit für Ihre eigenen Skripte einzustellen. make bench ignoriert die Konfigurationsdatei.

Zurück | Anfang | Vor
Installation | Hoch | Installation auf Windows 95/98/NT Systemen


Installation auf Windows 95/98/NT Systemen

Diese Installationsanleitung soll Ihnen helfen, PHP auf Ihrem Windows 9x/NT Webserver zu installieren und zu konfigurieren. Diese Anleitung wurde von Bob Silva erstellt. Um die aktuellste Fassung (Englisch) zu erhalten, klicken Sie bitte hier: http://www.umesd.k12.or.us/php/win32install.html.

Diese Anleitung umfasst die Installation folgender Komponenten:

  • Personal Web Server (Neueste Version empfohlen)

  • Internet Information Server 3 oder 4

  • Apache 1.3.x

  • Omni HTTPd 2.0b1

Grundlegende Installations- Schritte

Die folgenden Schritte sollten in jedem Fall und unabhängig vom bevorzugten Webserver ausgeführt werden.

  • Entpacken Sie die Dateien, die mit der Distribution mitgeliefert werden in ein Verzeichnis Ihrer Wahl. Wir empfehlen "C:\PHP3\".

  • Kopieren Sie die 'php3.ini-dist'- Datei in Ihr '%WINDOWS%'- Verzeichnis un benennen Sie sie um in 'php3.ini'. Ihr Windows-Verzeichnis ist im Allgemeinen:

    c:\windows für Windows 95/98
    c:\winnt oder c:\winnt40 für NT servers

  • Editieren Sie nun Ihre 'php3.ini' -Datei mit Ihrem bevorzugtem Editor:

    • Sie müssen den Schlüssel 'extension_dir' so verändern, dass er auf Ihr PHP-Verzeichnis zeigt, bzw. dorthin, wo Sie die zu ladenden Erweiterungen (Module) abgelegt haben. Z.B.: c:\php3

    • Wenn Sie den Omni Httpd-Server verwenden, überspringen Sie den nächsten Schritt. Geben Sie bei dem Schlüssel 'doc_root' das Stammverzeichnis an, in dem Ihre PHP-Skripte liegen. Sie sollten diese Angabe aus Sicherheits-gründen auf das Dokumentenverzeichnis des Webservers setzen: Apache: '%apache\htdocs' IIS: '%inetpub\wwwroot' PWS: '%webshare\wwwroot'.

    • Wählen Sie nun die Erweiterungen (Module) aus, die Sie benutzen möchten, wenn PHP startet. Dieses geschieht, indem Sie die jeweiligen Schlüssel 'extension=php3_*.dll' entkommentieren (Entfernen Sie das ';' vor den Erweiterungen). Einige Erweiterungen stehen in Abhängigkeiten zu zusätzlichen Bibliotheken (Libraries), welche auf Ihrem System installiert sein müssen, um korrekt zu funktionieren. Die FAQ - Sektion von PHP liefert hier weitere Informationen über Bezugsquellen weiterer Bibliotheken. Bei selten benutzten Modulen empfiehlt es sich diese im Hinblick auf Systemresourcen dynamisch in das einzelne Skript zu laden. Module können Sie dynamisch mittels folgender Anweisung laden: dl("php_*.dll");

    • Wenn Sie den PWS oder IIS benutzen, können Sie die browscap.ini auf folgende Verzeichnisse setzen: 'c:\windows\system\inetsrv\browscap.ini' für Windows 95/98 und 'c:\winnt\system32\inetsrv\browscap.ini' für NT Server. Zusätzliche Informationen zur Benutzung der browsecap.ini und Ihrer Funktionalität erhalten Sie hier: mirror, klicken Sie auf den "source" button um ein Anwendungsbeispiel zu erhalten.

Den DLLs für PHP Erweiterungen sind allen das Prefix 'php3_' vorangestellt. Dieses soll Unklarheiten zwischen PHP Erweiterungen und ihren unterstützenden Bibliotheken vorbeugen.

Windows 95/98/NT und PWS/IIS 3

Die empfohlene Methode, um diese Server zu konfigurieren ist es, die 'php_iis_reg.inf'- Datei zu benutzen. Sie können diese Datei editieren, um sie Ihren Wünschen anzupassen. Sie können aber die Konfiguration auch "von Hand" vornehmen.

(!)WARNUNG: Diese Schritte erfordern einen Eingriff in die Registrierungsdatei von Windows. Sie sollten auf jeden Fall zuvor eine Sicherheitskopie Ihrer Registrierungsdatei erstellen. Sollte Ihnen bei der Bearbeitung der Registrierungsdatei ein Fehler unterlaufen, kann dieses ein instabiles oder nicht mehr startendes System zur Folge haben. Wir lehnen jede Verantwortung für Schäden und Verluste ab. Bitte seien Sie also bei der folgenden Methode sehr aufmerksam.

  • Starten Sie regedit.exe

  • Gehen Sie zu HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • Wählen Sie aus dem 'Bearbeiten-Menü' folgendes aus: Neu->Zeichenfolge.

  • Geben Sie hier die Erweiterung Ihrer .php3- Dateien an. Bsp.: .php3

  • Klicken Sie nun doppelt auf den Wert der Zeichenkette, und geben Sie hier als zugeordnetes Programm Ihre php.exe an. Bsp.: c:\php3\php.exe %s %s. Die Folge '%s %s' ist unbedingt einzufügen, PHP würde sonst nicht korrekt arbeiten.

  • Wiederholen Sie diese Schritte für jede weitere Datei-Erweiterung, die sie mit PHP verbinden wollen.

  • Wechseln Sie zu: HKEY_CLASSES_ROOT

  • Wählen Sie aus dem 'Bearbeiten-Menü' folgendes aus: Neu->Schlüssel.

  • Benennen Sie den Schlüssel wie Ihre Datei-Erweiterung (.php3)

  • Wählen Sie nun den neu erstellten Schlüssel aus, und weisen Sie ihm den Standartwert phpfile zu.

  • Wiederholen Sie diese Schritte, wenn Sie weitere Datei-Erweiterungen konfigurieren wollen.

  • Erzeugen Sie nun einen weiteren Schlüssel Neu->schlüssel im Verzeichnis HKEY_CLASSES_ROOT und benennen Sie ihn mit phpfile.

  • Wählen Sie den neuen Schlüssel phpfile aus, und und weisen Sie ihm den Standartwert PHP Script zu.

  • Erstellen Sie nun unterhalb von phpfile mittels Rechtsklick einen neue Schlüssel und nennen Sie ihn Shell.

  • Unterhalb von Shell erzeugen Sie nun einen weiteren Schlüssel und nennen ihn open.

  • Unterhalb von open erzeugen Sie jetzt noch einen Schlüssel und nennen ihn command.

  • Wählen Sie den Schlüssel command aus, und geben Sie ihm als Standartwert den Pfad zur php.exe mit folgender Schreibweise an: c:\php3\php.exe -q %1. (vergessen Sie bitte nicht das %1).

  • Beenden Sie Regedit.

PWS and IIS 3 Benutzer sollten nun ein voll funktionsfähiges System haben. IIS 3 Benutzer können ein kleines Tool von Steven Genusa benutzen, um Ihre Skript-Maps zu editieren.

Windows NT und IIS 4

Um PHP auf Windows NT und dem IIS4 zu installieren, folgen Sie dieser Anleitung:

  • Im Internet Service Manager (MMC) selektieren Sie die Webseite oder ein Ausgangsverzeichnis Ihrer Anwendungen.

  • Öffnen Sie die Eigenschaften Ihres Verzeichnisses (Rechtsklick), danach klicken Sie auf die Registerkarte Homeverzeichnis, Virtuelles Verzeichnis oder Verzeichnis.

  • Klicken Sie auf die Schaltfläche Konfiguration und anschliessend auf die Registerkarte Anwendungs-Mapping.

  • Klicken Sie auf Hinzufügen und geben Sie in der Ausführungsbox ein: c:\path-to-php-dir\php.exe %s %s.Sie müssen %s %s unbedingt am Ende eingeben, sonst wird PHP nicht korrekt arbeiten.

  • Inder Ausführungsbox geben Sie die Dateierweiterungen an, mit der Ihre PHP-Skripte verbunden werden sollen. (Sie müssen Schritt 5 und 6 für jede zusätzlich gewünschte Erweiterung wiederholen. .php3 und .phtml sind die gebräuchlichsten.)

  • Stellen Sie im Internet Service Manager die geeigneten Sicherheitsmechanismen ein. Falls Ihr NT- Server das NTFS- Dateisystem benutzt, dann fügen Sie bitte Ausführungsrechte für I_USR_ dem Verzeichnis hinzu, das das Programm php.exe enthält.

Windows 9x/NT and Apache 1.3.x

Um den Apache zu konfigurieren, müssen Sie die Datei httpd.conf zum Bearbeiten öffnen (Bei älteren Apache-Versionen sind noch weitere Konfigurations-Dateien vorhanden; hier muss dann auch die srm.conf editiert werden).

Obwohl der Apache auf mannigfaltige Weise konfiguriert werden kann, sollte die hier vorgestellte Art selbst für einen "Newcomer" keine grösseren Hindernisse darstellen. Für weitere Konfigurationsmöglichkeiten konsultieren Sie bitte die Apache Docs.

  • ScriptAlias /php3/ "c:/path-to-php-dir/"

  • AddType application/x-httpd-php3 .php3

  • AddType application/x-httpd-php3 .phtml

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

Das Quell-Code-Highlighting Feature nutzen sie mit der Funktion showSource(). Erstellen Sie z.B. ein PHP-Skript in welchem Sie folgenden Code eingeben: <?php show_source ("original_php_script.php3"); ?>. Ersetzen Sie original_php_script.php3 durch den Namen des Skriptes, dessen Quellcode Sie anzeigen wollen (Dieses ist nur ein Weg, das Feature zu nutzen). Die Farben der des Syntax-Highlighting können Sie in der php.ini im Abschnitt 'Languages Options' einstellen. Bemerkung: Auf Win-Apache müssen alle Backslashes in einer Verzeichnis-Anweisung in Forward-Slashes (normaler Slash) konvertiert werden.

Omni HTTPd 2.0b1 für Windows

Dieser ist von allen Server der am einfachsten zu konfigurierende:

Schritt 1: Installieren Sie den Omni server
Schritt 2: Rechtsklick auf das blaue OmniHTTPd Icon in der System Tray und selektieren Sie Eigenschaften
Schritt 3: Klicken Sie auf Web Server Global Settings
Schritt 4: Bei der Registerkarte 'External' , geben Sie folgendes ein: virtual = .php3 | actual = c:\path-to-php-dir\php.exe
Schritt 5: Bei der Registerkarte Mime geben Sie folgendes ein: virtual = wwwserver/stdcgi | actual = .php3
Schritt 6: Klicken Sie auf OK. Fertig :-)

Wiederholen Sie Schritt 2-6 für jede Dateierweiterung, die Sie mit PHP verbinden wollen.

PHP Module

Tabelle 2-1. PHP Module

php3_calendar.dll | Kalender - Funktionen
php3_crypt.dll | Verschlüsselungs - Funktionen (MD5)
php3_dbase.dll | dBase - Funktionen
php3_dbm.dll | GDBM Emulation via Berkely DB2 library
php3_filepro.dll | READ ONLY Zugang zur Filepro Datenbank
php3_gd.dll | GD Library - Funktionen für gif-Manipulation
php3_hyperwave.dll | HyperWave - Funktionen
php3_imap4r2.dll | IMAP 4 - Funktionen
php3_ldap.dll | LDAP - Funktionen
php3_msql1.dll | mSQL 1 client
php3_msql2.dll | mSQL 2 client
php3_mssql.dll | MSSQL client (benötigt MSSQL DB-Bibliotheken
php3_mysql.dll | MySQL - Funktionen
php3_nsmail.dll | Netscape Mail - Funktionen
php3_oci73.dll | Oracle - Funktionen
php3_snmp.dll | SNMP get and walk Funktionen (nur NT !)
php3_zlib.dll | ZLib - Funktionen

Zurück | Anfang | Vor
Installation auf UNIX Systemen | Hoch | Probleme?


Probleme?

Lesen Sie die FAQ

Einige Problem tauchen öfters auf als andere. Die am häufigsten auftretenden Probleme sind in der PHP-FAQ aufgelistet: http://www.php.net/FAQ.php

Bug Reports

Wenn Sie glauben, einen Bug gefunden zu haben, melden Sie ihn uns bitte. Die PHP-Entwickler kennen ihn wahrscheinlich noch nicht, und wenn Sie ihn nicht melden, stehen die Chancen schlecht, das er ausgemerzt wird. Sie können einen Bug mittels des "bug-tracking system" unter http://bugs.php.net/ melden.

Andere Probleme

Wenn Ihnen trotzdem noch nicht geholfen werden konnte, könnte es sein, das jemand auf der Mailingliste Ihnen helfen kann. Bevor Sie jedoch ein Problem an die Mailingliste weitergeben, sollten Sie zuerst das Archiv der Liste durchsuchen. Das Archiv finden Sie unter http://www.php.net/. Um sich auf der Mailingliste anzumelden, reicht es, eine leere Email an php-general-subscribe@lists.php.net zu schicken. Die Adresse der Mailingliste ist php-general@lists.php.net.

Wenn Sie Hilfe von der Mailingliste haben möchten, dann achten Sie bitte auf folgende Verhaltensmaßnahmen:

Beschreiben Sie Ihr Problem so präzise wie möglich, und fügen Sie Details Ihrer Entwicklungsumgebung hinzu (Betriebssystem, Server, PHP-Version, CGI oder Modul- Version etc). Fügen Sie genug Quellcode hinzu, so dass andere Ihr Problem nachvollziehen können

Verschicken Sie keine html-codierte Emails. Solche Emails können nicht von allen Email-Programmen gelesen werden, was zur Folge hat, das Ihre Email unter Umständen gleich im Papierkorb landet.

Halten Sie die NetiQuette ein.

Zurück | Anfang | Vor
Installation auf Windows 95/98/NT Systemen | Hoch | Konfiguration


Konfiguration

PHP Handbuch
Zurück Vor

Kapitel 3. Konfiguration

Inhaltsverzeichnis
Die Konfigurationsdatei

Die Konfigurationsdatei

Die Konfigurationsdatei (php3.ini in PHP 3.0.x, und php.ini in 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-Version konfiguriert worden, geschieht es bei jedem Aufruf.

Wenn Sie PHP in der Modul-Variante benutzen, können Sie die Konfigurationseinstellungen auch mittels der Apache-Konfigurations- datei bzw. mittels .htaccess-Dateien ändern.

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

Bei PHP 4.0 gibt es nur noch wenige Apache-Anweisungen, die es Ihnen erlauben, die Konfigurationseinstellungen zu ändern.

php_value name value

Dieses setzt den Wert der spezifizierten Variablen.

php_flag name on|off

Dieser Schalter wird benutzt, um die Boolean-Konfigurations- Option zu aktivieren.

php_admin_value name value

Dieser Wert setzt den Wert der spezifischen Variablen. "Admin"-Konfigurationseinstellungen können nur innerhalb der Haupt-Konfigurationsdatei des Apache gesetzt werden, nicht etwa über eine .htaccess Datei.

php_admin_flag name on|off

Dieser Schalter wird benutzt, um die Boolean-Konfigurations-Option zu aktivieren. ("Admin")

Die Konfigurationseinstellungen können Sie in der Ausgabe der phpinfo() Datei einsehen. Ebenfalls können Sie Zugang zu den individuellen Konfigurationseinstellungen über get_cfg_var() bekommen.

Allgemeine Konfigurationseinstellungen

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: Escaping from HTML.

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

auto_append_file string

Hier können Sie eine Datei angeben, die automatisch nach der Haupt-Datei 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 Wert none deaktiviert auto-appending.

Anmerkung: Wird das Skript mit der Funktion exit()beendet, wird auto-append nicht aktiv.

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 Wert none deaktiviert auto-prepending.

cgi_ext string

display_errors boolean

Dieser Wert muß "on" sein, damit Fehlermeldungen an die Konsole (Prompt oder Browser) gesendet werden können.

doc_root string

Hier wird das Stammverzeichnis der PHP-Skripte eingegeben. Üblicherweise handelt es sich hier um das DocumentRoot des Servers (Apache: htdocs) Diese Angabe wird nur benutzt, wenn sie einen Wert enthält. Wenn PHP mit safe mode konfiguriert wurde, werden alle PHP-Skripte außerhalb dieses Directorys ignoriert.

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.

error_log string

Hier können Sie die Datei angeben, in der Skript-Fehler protokolliert werden sollen. Wenn Sie statt eines Dateinamens syslog eintragen, wird stattdessen das Ereignisprotokoll von WindowsNT genutzt. Auf UNIX Systemen syslog(3) verwendet. Windows 95/98 unterstützen dieses nicht.

error_reporting integer

Hier können Sie die Genauigkeit der Fehlermeldungen einstellen. Der eingetragene Wert ist ein Bitwert, und wird als Summe folgender Werte des Error Reporting Levels gebildet:

Tabelle 3-1. Error Reporting Levels

bit value | Aktivierte Protokollierung
1 | Normale Fehler
2 | Normale Warnungen
4 | Fehler des Parsers, meistens Syntaxfehler
8 | Unkritische Warnungen, die ignoriert werden können. Sinnvoll in der Entwicklungsphase.
Standardwert ist hier 7 (normale Fehler, normale Warnungen, Fehler des Parsers werden angezeigt).

open_basedir string

Limitiert die Anzahl der Dateien, die von PHP in einem bestimmten Verzeichnis geöffnet werden können.

Wenn ein Skript versucht, eine Datei mit z.B. fopen oder gzopen zu öffnen, wird der Ort der Datei überprüft. Wenn sich die Datei außerhalb des spezifizierten Verzeichnisses befindet, wird PHP sie nicht öffnen. Alle symbolischen Links sind hier mit eingeschlossen, so dass es auch nicht möglich ist, dieses Verbot mittels symlink zu umgehen.

Der Wert . gibt an, dass das Verzeichnis, in dem das Skript abgespeichert ist, als Basis-Verzeichnis genutzt wird.

Unter Windows werden Verzeichnisse mit Semikolon getrennt, unter allen anderen Betriebssystemen mit einem Doppelpunkt. Wenn PHP als Modul in den Apache einkompiliert wurde, werden open_basedir paths von "Eltern"-Verzeichnissen nun automatisch vererbt.

Anmerkung: Die Unterstützung für multiple Verzeichnisse wurde in Version 3.0.7 hinzugefügt.

Die Standardeinstellung ist, alle Dateien zum Parsen freizugeben.

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, ignoriert PHP Cookies, und wird jede GET Methoden Variable mit POST Methoden Variablen des gleichen Namens überschreiben.

ignore_user_abort string

Standardmäßig auf ON. Wenn Sie diese Einstellung auf OFF setzen, werden PHP-Skripte beendet, sobald sie versuchen, eine Ausgabe zu erzeugen, nachdem der Client die Verbindung beendet hat. ignore_user_abort().

include_path string

Hier können Sie ein Verzeichnis angeben, in dem die require(), include() and fopen_with_path() Funktionen nach Dateien suchen. Das Format ist ähnlich der PATH Umgebungsvariablen des jeweiligen Systems: Eine Liste von Verzeichnissen, getrennt durch einen Doppelpunkt bei UNIX oder ein Semikolon bei WINDOWS.

Beispiel 3-1. UNIX include_path

include_path=.:/home/httpd/php-lib

Beispiel 3-2. Windows include_path

include_path=".;c:\www\phplib"
Der Standardwert für diese Option ist . (nur das aktuelle Verzeichnis).

isapi_ext string

log_errors boolean

Dieser Schalter entscheidet, ob Skript-Fehler im Fehler-Logfile des Servers protokolliert werden sollen. Diese Option ist also Server-spezifisch.

magic_quotes_gpc boolean

Dieser Schalter setzt den magic_quotes-Zustand für GPC (GET/POST/COOKIE) -Operationen. Wenn magic_quotes auf ON steht, werden automatisch alle ' (single-quote), " (double quote), \ (backslash) und NUL's mit einem Backslash versehen. Wenn auch magic_quotes_sybase auf ON steht, wird ein single-quote mit einem weiteren single-quote anstatt eines Backslashs versehen.

magic_quotes_runtime boolean

Wenn der Schalter magic_quotes_runtimeaktiviert ist, werden Anführungszeichen der meisten Funktionen, welche Daten aus jeglicher Art von externer Quelle, eingeschlossen Datenbanken und Textdateien, zurückgeben, mit einem Backslash versehen. Wenn auch der Schalter magic_quotes_sybase aktiviert ist, wird ein einfaches Anführungszeichen mit einem einfachen Anführungszeichen anstatt eines Backslashes versehen.

magic_quotes_sybase boolean

Wenn der Schalter magic_quotes_sybasezusätzlich zu magic_quotes_gpc oder magic_quotes_runtime aktiviert ist, werden einfache Anführungszeichen mit einfachen Anführungszeichen anstatt eines Backslashs versehen.

max_execution_time integer

Dieser Wert gibt die maximale Ausführungslänge eines Skriptes in Sekunden an, bevor es vom Parser abgebrochen wird. Dieses soll Abstürzen des Servers durch schlecht geschriebene oder falsche Skripte vorbeugen. Bei komplexen Datenbankabfragen sollte man jedoch bedenken, dass der Standardwert unter Umständen zu klein sein kann.

memory_limit integer

Dieser Wert gibt den maximal erlaubten Speicherplatzverbrauch eines PHP-Skriptes an. Diese Einstellung soll den Server vor Speicherverschwendung durch schlecht programmierte Skripte bewahren.

nsapi_ext string

register_globals boolean

Dieser Schalter bestimmt, ob die EGPCS-Variablen (Environment, GET, POST, Cookie, Server) als globale Variablen registriert werden oder nicht. Sie sollten dies ausschalten, wenn der globale Bereich Ihrer Skripte nicht durch Benutzerdaten gestört werden soll. Diese Einstellung ist insbesondere dann sinnvoll, wenn sie mit track_vars verwendet wird. In diesem Fall kÖnnen alle EGPCS-Variablen durch $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS und $HTTP_SERVER_VARS angespochen werden.

short_open_tag boolean

Gibt an, ob die Kurzform (<? ?> eines öffnenden PHP-Tags erlaubt ist. Wenn Sie PHP in Kombination mit XML nutzen, müssen Sie diese Option deaktivieren. Wenn Sie die Option deaktiviert haben, müssen Sie die Langform des öffnenden Tags (<?php ?>)verwenden.

sql.safe_mode boolean

track_errors boolean

Wenn diese Option aktiviert ist, wird der letzte Fehler immer in der globalen Variablen $php_errormsg abgelegt.

track_vars boolean

Wenn dieser Schalter aktiviert ist, werden GET-, POST- und Cookie-Werte in den Umgebungsvariablen-Arrays $HTTP_GET_VARS, $HTTP_POST_VARS und $HTTP_COOKIE_VARS abgelegt.

upload_tmp_dir string

Hier wird das temporäre Verzeichnis angegeben, in welchem Dateien gespeichert werden, die mittels file upload auf den Server geladen werden. Dieses Verzeichnis muss schreibbar sein.

user_dir string

Wenn Sie PHP für User hosten, dann können persönliche Verzeichnisse der Art ~username angelegt werden. Der Wert user_dir zeigt auf das Stammverzeichnis, unter dem diese Nutzerverzeichnisse liegen. z.B. public_html.

warn_plus_overloading boolean

Wenn dieser Schalter aktiviert ist, gibt PHP eine Warnung aus, wenn der Plus-Operator (+) anstatt des Punkt-Operators (.) für die String-Verkettung benutzt wurde.

Mail-Konfigurationsdirektiven

SMTP string

Dieser Wert muss nur in der Windows-Umgebung gesetzt werden. Hier wird der DNS-Name oder die IP-Adresse des SMTP-Servers eingetragen, über den Mails mit der Funktion mail() verschickt werden sollen.

sendmail_from string

Hier können Sie den Absender der Emails eintragen, wenn Sie von Windows aus Emails verschicken wollen.

sendmail_path string

Hier geben Sie den Pfad zum sendmail Programm an. Für gewöhnlich ist dies /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht zwar den Pfad zum sendmail Programm selbstständig herauszufinden, aber für den Fall, dass dieses nicht funktioniert, können Sie den Pfad hier eintragen.

Auf Systemen, wo Sendmail nicht benutzt wird, sollten Sie diesen Pfad auf den Sendmail-Ersatz -wenn vorhanden- setzen. Zum Beispiel: Qmail-Benutzer können den Pfad normalerweise wie folgt setzen: /var/qmail/bin/sendmail.

Safe Mode-Konfigurationsdirektiven

safe_mode boolean

Wenn Sie diesen Schalter auf ON setzen, betreiben Sie PHP im sicheren Modus. Mehr dazu erfahren Sie im Kapitel Sicherheit

safe_mode_exec_dir string

Wenn Sie PHP im sicheren Modus betreiben, werden die Funktion system() und andere Funktionen, die Systemprogramme ausführen, nicht gestartet, wenn Sie sich nicht in diesem Verzeichnis befinden.

Debugger-Konfigurationsdirektiven

debugger.host string

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

debugger.port string

Portnummer, die vom Debugger benutzt wird.

debugger.enabled boolean

Hier können Sie den Debugger aktivieren bzw. deaktivieren.

Extension Loading-Direktiven

enable_dl boolean

Diese Option ist eigentlich nur sinnvoll, wenn Sie PHP als Apache-Modul benutzen. Dann können Sie das "Einladen" der dynamischen PHP-Extensionen mit der Funktion dl() für einzelne virtuelle Server oder Verzeichnisse aktivieren bzw. deaktivieren.

Der Hauptgrund, das dynamische Laden von Extensionen zu deaktivieren, ist Sicherheit. Wenn die Option aktiviert ist, ist es möglich, Restriktionen durch safe_mode und open_basedir zu umgehen.

Standardmäßig wird das dynamische Laden erlaubt, außer wenn Sie PHP im safe_mode betreiben. Im safe_mode ist es nie möglich, die Funktion dl() zu benutzen.

extension_dir string

Hier geben Sie das Verzeichnis an, in dem PHP dynamisch zu ladende Extensionen findet.

extension string

Hier geben Sie an, welche Extensionen geladen werden sollen, wenn PHP gestartet wird.

MySQL-Konfigurationsdirektiven

mysql.allow_persistent boolean

Erlaubt persistente Verbindungen.

mysql.default_host string

Hier wird der Host (Computername) des Computers eingetragen, auf dem MySQL installiert ist (wird benutzt, falls kein anderer Name angegeben wird).

mysql.default_user string

Hier wird der Name des Standardbenutzers eingegeben (wird benutzt, falls kein anderer Name angegeben wird).

mysql.default_password string

Hier wird das Standardpasswort eingegeben (wird benutzt, falls kein anderes Passwort angegeben wurde).

mysql.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter MySQL-Verbindungen pro Prozess an.

mysql.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

mSQL-Konfigurationsdirektiven

msql.allow_persistent boolean

Erlaubt persistente mSQL-Verbindungen.

msql.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter mSQL-Verbindungen pro Prozess an.

msql.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

PostgreSQL-Konfigurationsdirektiven

pgsql.allow_persistent boolean

Erlaubt persistente PostgreSQL-Verbindungen.

pgsql.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter PostgreSQL-Verbindungen pro Prozess an.

pgsql.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

SESAM Konfigurationsdirektiven

sesam_oml string

Name der BS2000 PLAM-Bibliothek, die die ladbaren SESAM Treibermodule enthält. Diese Direktive ist obligatorisch, anderenfalls wird die SESAM Funktionalität deaktiviert. SESAM functions. Die angegebene BS2000 PLAM-Bibliothek muss durch Setzen von ACCESS=READ,SHARE=YES lesbar gemacht werden, da unter der Apache Server User-Id auf sie zugegriffen wird.

sesam_configfile string

Name der SESAM Applikations-Konfigurationsdatei. Diese Direktive ist obligatorisch, anderenfalls wird die SESAM Funktionalität deaktiviert. Die angegebene BS2000-Datei muss für die Apache Server-Kennung lesbar sein.

Gewöhnlich enthält die Applikations-Konfigurationsdatei Konfigurationsbefehle wie (siehe SESAM Referenzhandbuch):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Name der SESAM Message-Katalogdatei. In den meisten Fällen ist die Angabe dieser Datei überflüssig; lediglich wenn die Message-Katalogdatei nicht in der BS2000 Messagedatei-Tabelle eingetragen ist, kann sie explizit mit dieser Direktive gesetzt werden.

Die angegebene BS2000 Message-Katalogdatei muss durch Setzen von ACCESS=READ,SHARE=YES lesbar gemacht werden, da unter der Apache Server User-Id auf sie zugegriffen wird.

Sybase-Konfigurationsdirektiven

sybase.allow_persistent boolean

Erlaubt persistente Sybase-Verbindungen.

sybase.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Sybase-Verbindungen pro Prozess an.

sybase.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

Sybase-CT-Konfigurationsdirektiven

sybct.allow_persistent boolean

Erlaubt persistente Sybase-CT Verbindungen. Standardwert ist ON.

sybct.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Sybase-Verbindungen pro Prozess an. Der Standardwert ist -1 (unbegrenzt).

sybct.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale). Standardwert ist -1 (unbegrenzt).

sybct.min_server_severity integer

Server-Meldungen mit höherem oder gleichem Gewicht als sybct.min_server_severity werden als Warnung ausgegeben. Dieser Wert kann auch in einem Skript mittels der sybase_min_server_severity() Funktion gesetzt werden. Standardwert ist 10, wodurch Fehler mit Informations-"Gewicht" oder höher ausgegeben werden.

sybct.min_client_severity integer

Meldungen der Client-Library mit höherem oder gleichem Gewicht als sybct.min_client_severity werden als Warnungen ausgegeben. Dieser Wert kann auch in einem Skript mit der Funktion sybase_min_client_severity() gesetzt werden. Der Standardwert ist hier 10, was eine Ausgabe im Endeffekt deaktiviert.

sybct.login_timeout integer

Hier können Sie die maximale Zeit in Sekunden angeben, die gewartet wird, bis eine Verbindung erfolgreich aufgebaut wurde (also bevor eine Fehlermeldung erscheint). Beachten Sie, dass wenn die max_execution_time für einen Verbindungsversuch vorbei ist, Ihr Skript beendet wird, bevor es eine Fehlermeldung (oder andere Aktion) ausgeben kann. Der Standardwert ist hier 1 Minute.

sybct.timeout integer

Hier können Sie die maximale Zeit in Sekunden angeben, die auf eine select_db oder andere DB-Query gewartet wird, bis eine Fehlermeldung erscheint. Beachten Sie, dass wenn die max_execution_time für eine DB-Query vorbei ist, Ihr Skript beendet wird, bevor es eine Fehlermeldung (oder andere Aktion) ausgeben kann. Der Standardwert ist hier unbegrenzt.

sybct.hostname string

Hier können Sie den Host angeben, von dem die Verbindung ausgehen soll. Sie können diesen Wert mit sp_who anzeigen. Standardwert ist none.

Informix-Konfigurationsdirektiven

ifx.allow_persistent boolean

Erlaubt persistente Informix-Verbindungen.

ifx.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter Informix-Verbindungen pro Prozess an.

ifx.max_links integer

Hier geben Sie die maximale Anzahl der Verbindungen pro Prozess an (persistente und normale).

ifx.default_host string

Hier geben Sie den Standardhost für eine Verbindung ein, der benutzt wird, wenn kein anderer Host in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.default_user string

Hier geben Sie den Standardbenutzer für eine Verbindung ein, der benutzt wird, wenn kein anderer Benutzer in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.default_password string

Hier geben Sie das Standardpasswort für eine Verbindung ein, das benutzt wird, wenn kein anderes Passwort in ifx_connect() oder ifx_pconnect() angegeben wurde.

ifx.blobinfile boolean

Setzen Sie diesen Wert auf true, wenn Sie BLOB-Felder in einer Datei zurückgegeben haben wollen, auf false, wenn Sie sie im Speicher haben wollen. Diesen Eintrag können Sie mit ifx_blobinfile_mode() während der Ausführung überschreiben.

ifx.textasvarchar boolean

Setzen Sie diesen Wert auf true, wenn Sie TEXT-Felder als normale Strings in SELECT-Anweisungen zurückgegeben haben wollen, auf false, wenn Sie sie BLOB-ID Parameter benutzen wollen. Diesen Eintrag können Sie mit ifx_textasvarchar() während der Ausführung überschreiben.

ifx.byteasvarchar boolean

Setzen Sie diesen Wert auf true, wenn Sie BYTE-Felder in SELECT-Abfragen als normale Strings zurückgeliefert haben wollen, auf false, wenn Sie BLOB-ID Parameter benutzen wollen. Diesen Eintrag können Sie mit ifx_textasvarchar() während der Ausführung überschreiben.

ifx.charasvarchar boolean

Setzen Sie diesen Wert auf true, wenn Sie nachfolgende Spaces von CHAR-Feldern bei der Abfrage abschneiden wollen.

ifx.nullformat boolean

Setzen Sie diesen Wert auf true, wenn Sie NULL-Felder als String "NULL", bzw. auf false, wenn Sie diese als leeren String "" zurückgeliefert haben wollen. Sie können diesen Wert während der Ausführung mit der Funktion ifx_nullformat() überschreiben.

BC Math-Konfigurationsdirektiven

bcmath.scale integer

Anzahl der Nachkommastellen der bcmath-Funktionen.

Browser Capability-Konfigurationsdirektiven

browscap string

Name der browser_capabilities-Datei. Mehr hierüber erfahren Sie unter get_browser().

Unified ODBC-Konfigurationsdirektiven

uodbc.default_db string

ODBC Standarddatenquelle, die benutzt wird, wenn keine andere in odbc_connect() oder odbc_pconnect() angegeben wurde.

uodbc.default_user string

ODBC Standard-Benutzername, der benutzt wird, wenn kein anderer Benutzer in odbc_connect() oder odbc_pconnect() definiert wurde.

uodbc.default_pw string

ODBC Standardpasswort, das benutzt wird, wenn kein anderes Passwort in odbc_connect() oder odbc_pconnect() angegeben wurde.

uodbc.allow_persistent boolean

Erlaubt persistente ODBC-Verbindungen.

uodbc.max_persistent integer

Hier geben Sie die maximal erlaubte Anzahl persistenter ODBC-Verbindungen pro Prozess an.

uodbc.max_links integer

Hier geben Sie die maximal erlaubte Anzahl der ODBC-Verbindungen pro Prozess an (persistente und normale).

Zurück | Anfang | Vor
Probleme? | Hoch | Sicherheit


Sicherheit

PHP Handbuch
Zurück Vor

Kapitel 4. Sicherheit

Inhaltsverzeichnis
CGI-Version
Apache-Modul

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, daß man PHP für vielerlei Zwecke einsetzen kann, allerdings bedeutet es auch, dass es Kombinationen gibt, die zur Folge haben, daß die Installation nicht genug Sicherheit bietet. Dieses Kapitel beschreibt die verschiedenen Kombinationen der Konfigurationseinstellungen und unter welchen Gegebenheiten sie sicher genutzt werden können.

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 Scripts 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 Plazierung von Interpretern im cgi-bin Verzeichnis aus. Obwohl das PHP-Binary als standalone Interpreter verwendet werden kann, wurde PHP entwickelt, um Angriffe, die durch diese Konfiguration möglich werden, abzuwehren:

  • Sytemdatenzugriff: http://my.host/cgi-bin/php?/etc/passwd

    Die Abfrageinformation in einer URL, die auf ein Fragezeichen (?) folgt, wird durch das CGI-Interface als Kommandozeilenargument an den Interpreter weitergereicht. Üblicherweise wird von Interpretern die Datei geöffnet und ausgeführt, die als erstes Argument in der Kommandozeile steht.

    Beim Aufruf als CGI-Binary verweigert PHP die Interpretierung der Kommandozeilenargumente.

  • Zugriff auf beliebige Web-Dokumente auf dem Server: http://my.host/cgi-bin/php/secret/doc.html

    Die Pfadinformation, Teil der URL nach dem PHP-Binarynamen, /secret/doc.html wurde ursprünglich 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 compilieren die Konfigurationsoption --enable-force-cgi-redirect und zur Laufzeit die Direktiven 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, gibt es für diese Konfiguration keinen Grund. Wenn der Webserver keine Redirects erlaubt oder keine Möglichkeit hat, auf einer sicher umgeleiteten Anfrage mit dem PHP-Binary Verbindung aufzunehmen, kann die Option --disable-force-cgi-redirect im configure-Script angegeben werden. Nichtsdestotrotz müssen Sie sicherstellenn, daß Ihre PHP-Scripte nicht auf die eine oder anderen 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 Option, die beim Kompilieren verwendet wird, verhindert grundsätzlich den Aufruf von PHP mit einer URL wie beispielsweise http://my.host/cgi-bin/php/secretdir/script.php3. 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, sodern als reguläres HTML-Dokument angezeigt werden kann dies den Verlust von geistigem Eigentum und Sicherheit (Passwörter!) zur Folge haben. Von daher ziehen es viele Sysadmins vor, eine zweite Verzeichnisstruktur für Skripte, auf die nur durch das PHP-CGI zugegriffen werden soll, einzurichten. Diese werden dann stets interpretiert und nicht angezeigt.

Auch wenn die Methode, sicherzustellen, dass die Anfragen nicht umgeleitet werden (wie im vorangegangenen Kapitel beschrieben), nicht verfügbar ist, ist es notwendig, ein doc_root für Scripts zusätzlich zum Dokumentenverzeichnis einzurichten.

Sie können das PHP-Skriptverzeichnis durch die Direktive doc_root in der Konfigurationsdatei ändern, 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, so daß man sicher sein kann, daß ausserhalb 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 Einfluß auf die zu öffnende Datei. Der Aufruf einer URL wie http://my.host/~user/doc.php3 hat nicht zum Ergebnis, daß 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 auf die 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 plazieren, 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. Ausserdem 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 | Anfang | Vor
Konfiguration | Hoch | Apache-Modul


Apache-Modul

Wenn PHP als Apache-Modul eingesetzt wird, übernimmt es die Benutzerrechte des Apache (üblicherweise user "nobody").

Zurück | Anfang | Vor
Sicherheit | Hoch | Sprachreferenz


Sprachreferenz

PHP Handbuch
Zurück Vor

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 | Anfang | Vor
Apache-Modul |  | Grundlagen der Syntax


Grundlagen der Syntax

PHP Handbuch
Zurück Vor

Kapitel 5. Grundlagen der Syntax

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

Den HTML-Bereich der Datei verlassen

Es gibt vier Möglichkeiten, den HTML-Bereich einer Skript-Datei zu verlassen und in den "PHP-Modus" zu wechseln:

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

1.  <? echo ("Das ist die einfachste Moeglichkeit:eine SGML-´proccessing instruction´\n"); ?>

2.  <?php echo("Um XML-konforme Dokumente herzustellen, benutzt man diese Syntax\n"); ?>

3.  <script language="php">
        echo ("Manche Editoren (z. B. Frontpage) moegen keine ´processing instructions´\n");
    </script>

4.  <% echo ("Optional können auch Tags im ASP-Stil verwendet werden"); %>
    <%= $variable; # Das ist ein Abkuerzung fuer "<%echo .." %>

Die erste Methode ist nur verfügbar, wenn ´short tags´ aktiviert sind. Dies kann durch die short_tags()-Funktion geschehen, durch Aktivieren der short_open_tag- Einstellung in der PHP-Konfigurationsdatei oder durch das übergeben der ´--enable-short-tags´-Option an den configure-Befehl beim Kompilieren des PHP-Parsers.

Die vierte Methode ist nur verfügbar, wenn Tags im ASP-Stil (ASP-style tags) aktiviert sind. Das ist möglich, indem man die asp_tags-Konfigurationseinstellung aktiviert.

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

Der schließende Tag für den PHP-Block schließt eine sofort folgende folgende Zeilenschaltung mit ein, falls diese vorhanden ist.

Zurück | Anfang | Vor
Sprachreferenz | Hoch | 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 | Anfang | Vor
Grundlagen der Syntax | Hoch | 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 abschliessender 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  <?# echo "einfaches";?> Beispiel.</h1>
<p>Obige Ueberschrift 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 Blocks auskommentiert.

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

Zurück | Anfang | Vor
Abgrenzung von Anweisungen | Hoch | Typen


Typen

PHP Handbuch
Zurück Vor

Kapitel 6. Typen

Inhaltsverzeichnis
Integer-Typen
Fließkomma-Zahlenwerte
Strings / Zeichenketten
Arrays
Objects
Typen-Tricks

PHP unterstützt die folgenden Typ-Deklarationen:

  • Array

  • Fließkomma-Zahl

  • Integer

  • Object

  • String / Zeichenkette

Der Typ einer Variabalen wird normalerweise nicht vom Programmierer bestimmt; vielmehr wird dies zur Laufzeit von PHP entschieden, abhängig vom Zusammenhang in dem die Variable benutzt wird.

Wenn sie die Umwandlung in einen bestimmten Variablen-Typ erzwingen wollen, können sie dies entweder per cast oder durch Gebrauch der Funktion settype().

Beachten Sie, dass eine Variable je nach Gebrauch und Situation auf unterschiedliche Art und Weise typisiert sein kann. Weitere Informationen sehen sie unter Typ-Veränderung.

Integer-Typen

Integer-Typen können durch Gebrauch einer der folgenden Zuweisungsarten angegeben werden:

$a = 1234; # Zahlenwert im dezimal-Format
$a = -123; # ein negativer Zahlenwert
$a = 0123; # Oktal-Zahl (83 im dezimal-Format) Achtung:
           # Fehlerquelle bei Strings mit führenden Nullen!
$a = 0x12; # Zahlenwert im hexadezimal-Format
           # (entspricht 18 im dezimal-Format)

Die Größe eines Integer-Wertes ist plattformabhängig, dennoch beträgt der Maximalwert über 2 Billionen (Vorzeichen-behafteter 32-Bit-Wert).

Zurück | Anfang | Vor
Kommentare | Hoch | Fließkomma-Zahlenwerte


Fließkomma-Zahlenwerte

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

$a = 1.234;
$a = 1.2e3;

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 ist 64-Bit im IEEE-Format).

Warnung

Es ist normal, dass einfache Dezimalzahlen wie 0.1 oder 0.7 nicht in ihre internen binären Entsprechungen konvertiert werden können, ohne einen 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....

Da es unmöglich ist, manche Dezimal-Zahlen durch eine begrenzte Anzahl an Nachkomma-Stellen darzu stellen, ist dies ein Fakt. 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 glauben oder solche auf Gleichjeit prüfen. Sollten sie einen größere Genauigkeit brauchen, sollten sie die mathematischen Funktionen beliebiger Genauigkeit benutzen.

Zurück | Anfang | Vor
Typen | Hoch | Strings / Zeichenketten


Strings / Zeichenketten

Strings können durch eines der zwei folgenden Sets von Begrenzungszeichen zugewiesen werden:

Wenn der String eingeschlossen wird von doppelten Anführungszeichen ("), werden die Variablen innerhalb der Zeichenkette ausgewertet (begrenzt durch einige Einschränkungen beim "Parsen" (Ausführen) des PHP- Scripts). Wie in C und Perl kann das Backslash-Zeichen ("\") zur An- / Ausgabe spezieller Zeichen benutzt werden:

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

Zeichenfolge | Bedeutung
\n | neue Zeile (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 in Oktal-Schreibweise
\x[0-9A-Fa-f]{1,2} | die Zeichenfolge, die dem regulären Ausdruck entspricht ist, in Hexadezimal-Schreibweise

Sie können ein beliebiges anderes Zeichen übergehen bzw. von der Auswertung ausschliessen; in der höchsten Warn-Stufe wird aber eine Warnmeldung ausgegeben.

Die zweite Möglichkeit eine(n) Zeichenkette / String zu begrenzen, ist der Gebrauch des einfachen Anführungszeichens ("'"), auch Single-Quote genannt. Hier werden einzig die "\\" und "\'"-Zeichenfolgen von der Auswertung ausgeschlossen. Dies dient der Erleichterung, so dass sie Single-Quotes und Backslashes in einem durch einfache Anführungszeichen begrenzten String benutzen können. Variablen innerhalb von durch Single-Quotes begrenzten Strings werden nicht ausgewertet.

Eine andere Möglichkeit Strings einzufassen, besteht im Gebrauch der "here doc"-Syntax ("<<<"). Hierfür ist nach <<< ein Merker zu setzen. Nun folgt der eigentliche String und dann der selbe Merker um den String abzuschliessen. Der schliessende Merker muss in der ersten Spalte der Zeile stehen. Die verwendeten Bezeichner müssen den gleichen Regeln entsprechen wie alle anderen PHP-Bezeichner auch. Sie dürfen lediglich aus alphanumerischen Zeichen oder dem Unterstrich bestehen.

"Here doc"-Text funktioniert wie ein Text innnerhalb von '"', aber ohne '"'. Anführungszeichen innerhalb von "here doc"-Texten müssen also keiner Sonderbehandlung (escapen) unterzogen werden. Sie können aber die obigen Escape-Anweisungen verwenden. Variablen werden ausgewertet, aber besondere Aufmerksamkeit muss komplexen Variablen gewidmet werden, genau wie Strings.

Beispiel 6-1. Beispiel zur String-Festlegung per "here doc"-Methode:

<?php
$str = <<<EOD
Beispiel eines Strings
über mehrere Script-Zeilen
durch Gebrauch der here doc-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 Kapitel 'A' schreiben: \x41
EOT;
?>

Anmerkung: Die "here-doc"-Unterstützung wurde in PHP 4 eingeführt.

Zeichenketten / Strings können mittels des '.'-Operators miteinander verbunden werden. Beachten sie, dass hier der '+' (Additions)-Operator nicht funktioniert. Bitte beachten sie auch String-Operatoren für weitergehende Informationen. Zeichen in einem String können wie ein numerisch-indiziertes Array von Zeichen benutzt werden. Die Syntax ist der von C ähnlich. Sehen sie hierzu die folgenden Beispiele:

Beispiel 6-2. Einige String-Beispiele

<?php
/* Zuweisung eines Strings. */
$str = "Dies ist eine Zeichenkette";

/* Erweiterung dieses Strings. */
$str = $str . " mit etwas zusätzlichem Text";

/* andere Möglichkeit zum Erweitern incl. Anweisung für Neue-Zeile. */
$str .= " und einer neuen Zeile am Ende.\n";

/* Dieser String wird am Ende zu: '<p>Nummer: 9</p>' */
$num = 9;
$str = "<p>Nummer: $num</p>";

/* Dieser wird zu '<p>Nummer: $num</p>' */
$num = 9;
$str = '<p>Nummer: $num</p>';
?>

/* Das erste Zeichen eines Strings */
$str = 'Das ist ein Test.'
$first = $str[0];

/* Das letzte Zeichen eines Strings */
$str = 'Das ist immer noch ein Test.'
$last = $str[strlen($str)-1];
?>

Umwandlung von Zeichenketten / Strings

Sobald ein String als Zahlenwert angesehen wird, wird der resultierende Wert und Typ wie folgt festgelegt:

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

Der Inhalt wird durch den Anfangsteil des Strings vorgegeben. Sofern der String mit numerischen Daten beginnt, wird ein Zahlen-Wert angenommen. Andererseits kann der Wert auch 0 (Null) sein. Gültig sind auch Werte mit einem optionalen Vorzeichen, gefolgt von einer oder mehreren Zahlen (optional mit einem Dezimalpunkt). Wahlweise kann auch ein Exponent angegeben werden. Dieser besteht aus einem 'e' oder 'E', gefolgt von einer oder meheren Zahlen.

Sobald der erste Ausdruck ein String ist, hängt der Typ der Variablen vom zweiten Ausdruck ab.

$foo = 1 + "10.5";              // $foo ist double (11.5)
$foo = 1 + "-1.3e3";            // $foo ist double (-1299)
$foo = 1 + "bob-1.3e3";         // $foo ist ein Integer-Wert (1)
$foo = 1 + "bob3";              // $foo ist ein Integer-Wert (1)
$foo = 1 + "10 Small Pigs";     // $foo ist ein Integer-Wert (11)
$foo = 1 + "10 Little Piggies"; // $foo ist ein Integer-Wert (11)
$foo = "10.0 pigs " + 1;        // $foo ist ein Integer-Wert (11)
$foo = "10.0 pigs " + 1.0;      // $foo ist double (11)

Mehr Informationen über solche Umwandlungen können sie im UNIX-Manual unter strtod(3) finden.

Wenn sie alle Beispiele dieses Abschnitts testen wollen, können sie sie per Cut und Paste in ihr Script übertragen und mit der folgenden Zeile selbst sehen, was passiert:

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

Zurück | Anfang | Vor
Fließkomma-Zahlenwerte | Hoch | Arrays


Arrays

Arrays reagieren wie Hash-Tabellen (assoziative Arrays) und indizierte Arrays (Vektoren).

Eindimensionale Arrays

PHP unterstützt sowohl skalare als auch assoziative Arrays. Letztendlich gibt es keinen Unterschied zwischen den beiden. Sie können ein Array erzeugen, indem sie die list() oder array() Funktionen benutzen, oder sie können explizit den Wert eines jeden Array-Elements festlegen.

$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;

Sie können ein Array auch erzeugen, indem sie einfach Werte einem Array hinzu fügen. Wenn sie einer Array-Variablen einen Wert weisen, indem sie leere Klammern benutzen, wird der Wert am Ende des Arrays hinzugefügt.

$a[] = "hello"; // $a[2] == "hello"
$a[] = "world"; // $a[3] == "world"

Arrays können durch Gebrauch der asort(),
arsort(), ksort(),
rsort(), sort(),
uasort(), usort(), und
uksort()-Funktionen sortiert werden (in
Abhängigkeit von der gewünschten Sortierung).

Sie können die Anzahl der Elemente eines Arrays mittels der count()-Funktion ermitteln.

Durchlaufen können sie ein Array per next() und prev()-Funktion. Eine weiter Möglichkeit ist die Funktion each().

Mehrdimensionale Arrays

Mehrdimensionale Arrays sind einfach. Für jede Dimension des Arrays fügen sie einen anderen [key]-Wert ans Ende an:

$a[1]      = $f;               # Ein-Dimensionales Beispiel
$a["foo"]  = $f;

$a[1][0]     = $f;             # Zwei-Dimensional
$a["foo"][2] = $f;             # (sie können numerische und
                                  assoziative Indizes so mischen)
$a[3]["bar"] = $f;             # (oder so)

$a["foo"][4]["bar"][0] = $f;   # Vier-Dimensional!

In PHP ist es nicht möglich, mehrdimensionale Arrays direkt in Strings zu referenzieren. Deshalb erzeugt auch das nachfolgende Beispiel nicht das gewünschte Ergebnis:

$a[3]['bar'] = 'Bob';
echo "Dies funktioniert nicht: $a[3][bar]";

In PHP wird das o.a. Beispiel folgendes ausgeben: Dies funktioniert nicht: Array[bar] . Jedoch kann der String-Verbindungs-Operator benutzt werden, dies zu umgehen:

$a[3]['bar'] = 'Bob';
echo "Das funktioniert: " . $a[3][bar];

In PHP4 kann das Problem umgangen werden, indem die Array-Referenz in geschweiften Klammern eingeschlossen wird:

$a[3]['bar'] = 'Bob';
echo "Das funktioniert in PHP4: {$a[3][bar]}";

Man kann multi-dimensionale Arrays auf viele Arten füllen, aber der trickreichste Weg geht über das Verständnis, wie der array()-Befehl für assoziative Arrays zu benutzen ist. Die folgenden Code-Schnippsel füllen das ein-dimensionale Array über den gleichen Weg:

# Example 1:

$a["color"]	= "red";
$a["taste"]	= "sweet";
$a["shape"]	= "round";
$a["name"]  	= "apple";
$a[3]		= 4;

# Example 2:
$a = array(
"color" => "red",
"taste" => "sweet",
"shape" => "round",
"name"  => "apple",
3       => 4
);

Die array()-Funktion kann eingefügt werden für mehrdimensionale Arrays:

<?php
$a = array(
    "apple"  => array(
        "color"  => "red",
        "taste"  => "sweet",
        "shape"  => "round"
    ),
    "orange"  => array(
        "color"  => "orange",
        "taste"  => "tart",
        "shape"  => "round"
    ),
    "banana"  => array(
        "color"  => "yellow",
        "taste"  => "paste-y",
        "shape"  => "banana-shaped"
    )
);

echo $a["apple"]["taste"];    # dies wird "sweet" ausgegeben
?>

Zurück | Anfang | Vor
Strings / Zeichenketten | Hoch | Objects


Objects

Objekt-Initialisierung

Um ein Objekt zu initialisieren benutzen sie die Angabe new, dadurch wird das Objekt einer Variablen-Instanz zugewiesen.

<?php
class foo {
    function do_foo () {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo ();
?>

Für eine ausführliche Besprechung lesen Sie im Kapitel Klassen und Objekte nach.

Zurück | Anfang | Vor
Arrays | Hoch | Typen-Tricks


Typen-Tricks

PHP erfordert (bzw. unterstützt) keine explizite Typ-Definitionen bei der Deklaration von Variablen; der Typ einer Variablen wird bestimmt durch den Zusammenhang in dem die Variable benutzt wird. Das bedeutet, dass bei der Zuweisung einer Zeichenkette / eines Strings zu einer Variablen var diese Variable var den Typ String erhält. 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 double, werden alle Werte als double-Typ gehandhabt. Auch das Ergebnis der Addition wird vom Typ double sein. Ist dies nicht der Fall, werden Werte als Integer-Typen angesehen und das Ergebnis wird ebenfalls vom Typ Integer sein. Beachten sie, dass hierdurch nicht der Typ der Additions-Elemente selbst beeinflusst wird; der Unterschied liegt einzig und allein in der Auswertung dieser Elemente.

$foo = "0";  // $foo ist vom Typ String (ASCII 48)
$foo++;      // $foo ist immer noch vom Typ String,
                Inhalt "1" (ASCII 49)
$foo += 1;   // $foo ist jetzt vom Typ Integer (2)
$foo = $foo + 1.3;  // $foo ist nun vom Typ double (3.3)
$foo = 5 + "10 Little Piggies"; // $foo ist vom Typ Integer (15)
$foo = 5 + "10 Small Pigs";     // $foo ist vom Typ Integer (15)

Wenn für sie die letzten beiden Beispiele gleich sind, beachten sie String-Umwandlung.

Wenn sie die Auswertung einer Variablen als ein spezieller Typ erzwingen wollen, beachten sie den Abschnitt in Typ-Umwandlung. Wenn sie den Typ einer Variablen wechseln wollen, sehen sie bitte settype() nach.

Um die Beispiele dieses Kapitels auszuprobieren, können sie diese per "Copy und Paste" übertragen und die folgende Zeile einfügen, um zu sehen, was passiert:

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

Anmerkung: Das Verhalten einer automatischen Umwandlung ist zur Zeit undefiniert.

$a = 1;       // $a ist ein Integer-Wert
$a[0] = "f";  // $a wird zum Array, $a[0] enthält "f"

Weil das o.a. Beispiel so aussieht, als ob $a ein Array wird, dessen erstes Element ein 'f' enthält, beachten sie folgendes:

$a = "1";     // $a ist ein String
$a[0] = "f";  // Was ist mit den String-Offsets? Was passiert?

Weil PHP 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?

Aus diesem Grund ist das Ergebnis der automatischen Umwandlung seit PHP 3.0.12 und auch in PHP 4.0b3-RC4 undefiniert. Lösungen werden noch dikutiert.

Typ-Umwandlung

Typ-Umwandlung in PHP funktioniert vielfach wie in C: Der Name des geforderten Typs wird vor der umzuwandelnden Variablen in Klammern gesetzt.

$foo = 10;   // $foo ist ein Integer-Wert
$bar = (double) $foo;   // $bar ist vom Typ double

Folgende Umwandlungen sind möglich:

  • (int), (integer) - Umwandlung in Integer-Wert

  • (real), (double), (float) - hin zu double

  • (string) - hin zu String

  • (array) - hin zum Array

  • (object) - Wandlung zum Objekt

Beachten sie, dass Tabulatoren und Leerzeichen innerhalb der Klammern erlaubt sind. Deshalb sind die folgenden Beispiel identisch:

$foo = (int) $bar;
$foo = ( int ) $bar;

Es ist nicht immer offenkundig, was bei der Typ-Umwandlung geschieht. Zum besseren Verständnis sollte das Folgende beachtet werden:

Bei der Umwandlung einer skalaren oder String-Variablen wird die Variable das erste Element des Arrays:

$var = 'ciao';
$arr = (array) $var;
echo $arr[0];  // gibt 'ciao' aus

Sobald eine skalare oder String-Variable in ein Objekt gewandelt wird, wird die Variable zu einem Attribut des Objekts; der Eigenschafts-Name wird 'scalar':

$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar;  // gibt 'ciao' aus

Zurück | Anfang | Vor
Objects | Hoch | Variablen


Variablen

PHP Handbuch
Zurück Vor

Kapitel 7. Variablen

Inhaltsverzeichnis
Grundlegendes
Vordefinierte Variablen
Geltungsbereich von Variable
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 die 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_\xzf-\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).

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

$4site  = 'nicht jetzt';     // ungültig, da Anfang eine Zahl
$_4site = 'nicht jetzt';     // gültig, da Unterstrich am Anfang
$täbyte = 'irgendwas';       // gültig, da 'ä' dem ASCII-Wert 228 entspricht

Variablen werden in PHP3 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 Expressions / Ausdrücke.

PHP4 bietet eine andere Möglichkeit der Wertzuweisung bei Variablen: Zuweisung durch Referenzierung. Das bedeutet, dass der Wert der neuen Variablen eine Referenz zur Ursprungs-Variablen darstellt (mit anderen Worten: Der Wert ist ein Alias bzw. Zeiger auf den Inhalt der Ursprungsvariablen). Beide Variablen zeigen also auf die selbe(n) Speicherstelle(n). Ä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 PHP3. 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 "&" plus "amp;" (&) der (Ausgangs-, Quell-) Variablen voranstellen, die sie einer anderen Variablen zuweisen wollen. Der folgende Skript- Ausschnitt wird zweimal 'Mein Name ist Bob' ausgeben:

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

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 | Anfang | Vor
Typen-Tricks | Hoch | 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.

Ungeachtet dieser Faktoren folgt nun eine Liste von vordefinierten Variablen innerhalb einer Basis-PHP3- Installation als Modul und einer Basis-Installation des Apache-Web-Servers in der Vers. 1.3.6.

Eine Liste aller vordefinierten Variablen (und weitere nützliche Informationen) erhalten sie durch Lesen der Infos zu (und Gebrauch) der phpinfo()-Funktion.

Anmerkung: Diese Liste ist weder vollständig noch erhebt sie Anspruch auf Vollständigkeit. Sie dient lediglich als Anleitung zu den möglicherweise zu erwartenden Arten von vordefinierten Variablen und dem Zugriff darauf.

Apache-Variablen

Diese Variablen werden durch den Apache-Web-Server erzeugt. Sollten sie einen anderen Web-Server nutzen, gibt es keine Garantie, dass dieser die selben Variablen unterstützt. Es könnten einige sein; es könnten aber auch hier nicht aufgeführte sein. Viele dieser Variablen werden in den CGI 1.1 Spezifikationen aufgeführt. Darauf sollten sie vorbereitet sein.

Einige sind beim Aufruf von PHP per Kommandozeile verfügbar. Sie können unterschiedliche Bedeutungen haben.

GATEWAY_INTERFACE

Die Revision der CGI-Spezifikation, die der Web-Server benutzt, z.B. 'CGI/1.1'.

SERVER_NAME

Der Host-Name des Web-Servers, der das Skript ausführt. Das kann auch der Name eines virtuellen Servers sein.

SERVER_SOFTWARE

Der Identifikations-String des Web-Servers (aus den Headern), sobald er Anforderungen beantwortet.

SERVER_PROTOCOL

Name und Revision des Informations-Protokolls, über das die Seite angefordert wurde, z.B. 'HTTP/1.0'.

REQUEST_METHOD

Welche Methode zum Zugriff auf die Seite benutzt wurde, z.B. 'GET', 'HEAD', 'POST', 'PUT'.

QUERY_STRING

Der Abfrage-(Query-)String (falls vorhanden), mit dem auf die Seite zugegriffen wurde.

DOCUMENT_ROOT

Das Verzeichnis des gerade ausgeführten Skripts aus Sicht des in der Konfigurations-Datei des Servers definierten Dokument-Wurzel-Verzeichnisses.

HTTP_ACCEPT

Inhalt des Accept:-Headers der aktuellen Anforderung (so es einen solche Header gibt).

HTTP_ACCEPT_CHARSET

Inhalt des Accept-Charset:-Headers der aktuellen Anforderung (sofern es einen gibt). Beispiel: 'iso-8859-1,*,utf-8'.

HTTP_ENCODING

Inhalt des Accept-Encoding:-Headers der aktuellen Anforderung (wenn es einen gibt). Beispiel: 'gzip'.

HTTP_ACCEPT_LANGUAGE

Inhalt des Accept-Language:-Headers in der aktuellen Anforderung, sofern dieser Header existiert. Beispiel: 'en'.

HTTP_CONNECTION

Inhalt des Connection:-Headers des aktuellen Request, so er vorhanden ist. Beispiel: 'Keep-Alive'.

HTTP_HOST

Inhalt des Host:-Headers der aktuellen Anforderung, wenn er existiert.

HTTP_REFERER

Die Adresse (URL) - sofern vorhanden - der Seite, von der aus auf die aktuelle Seite gesprungen wurde. Diese wird vom Browser gesetzt. Nicht alle unterstützen dies.

HTTP_USER_AGENT

Inhalt der User_Agent:-Header-Angabe der aktuellen Anfrage (wenn eine Angabe existiert). Dabei handelt es sich um eine Zeichenkette, welche das Browser- Programm benennt, mit dem die aktuelle Seite aufgerufen wurde, z.B. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Abgesehen von anderen Dingen können sie diesen Wert zusammen mit der get_browser()-Funktion dazu verwenden, ihre Web-Seiten in Abhängigkeit von den Möglichkeiten des jeweils benutzten Browsers anzeigen zu lassen.

REMOTE_ADDR

Die IP-Adresse, von der aus gerade auf die Web-Seite zugegriffen wird.

REMOTE_PORT

Der Port, der zum Zugriff auf ihren Web-Server seitens des Anwender-Computers benutzt wird.

SCRIPT_FILENAME

Der absolute Pfadname des gerade ausgeführten Skripts.

SERVER_ADMIN

Der Inhalt der in der Konfigurations-Datei des Web-Servers (Apache) stehenden Angabe zum SERVER_ADMIN. Bei virtuellen Hosts der dafür eingetragene Wert.

SERVER_PORT

Der vom Server für den Web-Server benutzte Kommunikations- Port (normalerweise '80'). Verwenden sie z.B. SSL, wird dieser Port derjenige sein, den sie für sicheres HTTP definiert haben.

SERVER_SIGNATURE

Sofern eingeschaltet, enthält diese Zeichenkette die Server- Version und den virtuellen Host-Namen. Sie wird den durch den Server generierten Seiten hinzu gefügt.

PATH_TRANSLATED

In Abhängigkeit vom Datei- / File-System der Pfad des aktuellen Skripts, nachdem der Server das virtuelle Mapping in ein reales Mapping umgesetzt hat (nicht der Dokument-Wurzel-Pfad).

SCRIPT_NAME

Enthält den Pfad des aktuellen Skripts. Nützlich für Seiten, die auf sich selbst verweisen müssen.

REQUEST_URI

Die URI, die durch den Zugriff auf die aktuelle Seite gegeben ist, z.B. '/index.html'.

Umgebungs- / Environment-Variablen

Diese Variablen werden aus der Umgebung, in der PHP läuft, in den globalen Namensbereich von PHP importiert. Viele werden durch die jeweilige Shell, in der PHP läuft, unterstützt bzw. gebildet. Da es verschiedenste Systemumgebungen mit den unterschiedlichsten Shell`s gibt, ist es nicht möglich, eine abschließende Liste der definierten Umgebungs-Variablen aufzustellen. Lesen sie deshalb in der Anleitung zu ihrer Shell nach, um eine Liste dieser systembezogenen Variablen zu erhalten.

Andere Umgebungs-Variablen beinhalten die CGI-Variablen, die ohne Rücksicht darauf, ob PHP als Web-Server-Modul oder im CGI-Modus läuft, gesetzt werden.

PHP-Variablen

Diese Variablen werden durch PHP selbst erzeugt.

argv

Ein Array von Informationen, die dem Skript übergeben werden. Wird das Skript an der Befehlszeile aufgerufen, ermöglicht dies C-ähnlichen Zugriff auf die Kommando- Zeilen-Parameter. Beim Aufruf per GET-Methode enthält dieses Array die Abfragewerte.

argc

Anzahl der per Kommando-Zeile dem Skript übergebenen Parameter (wenn von dort aufgerufen).

PHP_SELF

Der Datei-Name des gerade ausgeführten Skripts, relativ zum Wurzel-Verzeichnis des Dokuments. Bei Kommando-Zeilen- Aufrufen ist diese Variable nicht verfügbar.

HTTP_COOKIE_VARS

Ein assoziatives Array von Variablen, das dem aktuellen Skript über HTTP-Cookies übergeben wurde. Nur verfügbar, wenn die Option "Variablen-Tracking" per track_vars-Konfigurations- oder per <?php_track_vars?>- Anweisung eingeschaltet wurde.

HTTP_GET_VARS

Ein assoziatives Array von Variablen, das dem aktuellen Skript per HTTP-GET-Methode übergeben wurde. Nur möglich, wenn "Variablen-Tracking" per track_vars-Konfigurations- oder per <?php_track_vars?>- Anweisung eingeschaltet ist.

HTTP_POST_VARS

Ein assoziatives Array aus Varaiblen, welches dem aktuellen Skript per HTTP-POST-Methode übergeben wurde. Nur möglich, wenn "Variablen-Tracking" per track_vars-Konfigurations- oder per Anweisung <?php_track_vars?>- eingeschaltet ist.

HTTP_POST_FILES

Ein assoziatives Array aus Variablen, die Informationen über per HTTP POST-Methode hochgeladene Dateien enthalten. Dies ist nur verfügbar, wenn das "Variablen-Tracking" entweder über die Konfigurations-Anweisungen track_vars oder <?php_track_vars?> ermöglicht ist.

HTTP_ENV_VARS

Ein assoziatives Array aus Variablen, die dem aktuellen Skript über die Umgebung vermittelt werden. Dies ist nur verfügbar, wenn das "Variablen-Tracking" entweder über die Konfigurations-Anweisungen track_vars oder <?php_track_vars?> ermöglicht ist.

HTTP_SERVER_VARS

Ein assoziatives Array aus Variablen, die dem aktuellen Skript vom jeweiligen HTTP-Server übermittelt werden. Diese Variablen sind analog den o.a. Apache-Variablen. Dies ist nur verfügbar, wenn das "Variablen-Tracking" entweder über die Konfigurations-Anweisungen track_vars oder <?php_track_vars?> ermöglicht ist.

Zurück | Anfang | Vor
Variablen | Hoch | Geltungsbereich von Variable


Geltungsbereich von Variable

Der Geltungsbereich einer Variablen ergibt sich aus dem Zusammenhang, in dem sie definiert wurde. Meistens besteht dieser aus einem einzigen Bereich. Dieser beinhaltet auch den Bereich für Dateien, die per "Include"- oder "Require"-Anweisung eingebunden wurden, z.B.:

$a = 1;
include "b.inc";

Die Variable $a ist auch in der eingebundenen Datei b.inc verfügbar. In benutzer-definierten 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.:

$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. Ein Beispiel:

$a = 1;
$b = 2;

function sum () {
    global $a, $b;
    $b = $a + $b;
}

sum ();
echo $b;

Das obige Skript gibt "3" aus. Durch das Deklararieren der Variablen $a und $b innerhalb der Funktion als, 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:

$a = 1;
$b = 2;

function sum () {
    $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

sum ();
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.

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:

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 $a-Variable als "static" deklarieren:

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 des Umgangs 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 Variable $count wird benutzt, um die Rekursion zu beenden:

function test () {
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        test ();
    }
    $count--;
}

Zurück | Anfang | Vor
Vordefinierte Variablen | Hoch | Variable Variablen


Variable Variablen

Manchmal ist es erforderlich, variable Variablen-Bezeichner zu benutzen. Das bedeutet, einen Variablen-Namen zu setzen und dynamisch zu gebrauchen. Eine normale Variable wird wie folgt gebildet:

$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:

$$a = "Welt";

Nun existieren in der PHP-Symbol-Struktur zwei definierte und gespeicherte Variablen: $a mit dem Inhalt "Hallo" und $hello mit dem Inhalt "Welt". Deshalb wird die Anweisung

echo "$a ${$a}";

zur gleichen Ausgabe führen wie:

echo "$a $hallo";

also zu: hallo Welt.

Wenn sie variable Variablen mit Arrays verwenden, müssen sie eine Unklarheit 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 Lösung: Verwenden sie ${$a[1]} für den ersten Fall und ${$a}[1] für den zweiten.

Zurück | Anfang | Vor
Geltungsbereich von Variable | Hoch | Variablen ausserhalb von PHP


Variablen ausserhalb von PHP

HTML-Formulare (GET and POST)

Sobald ein Formular an ein PHP-Skript übergeben wird, wird jede Variable dieses Formulars dem Skript automatisch verfügbar gemacht. Dafür sorgt PHP. Ein Beispiel:

Beispiel 7-1. Einfache Formular-Variablen

<form action="foo.php3" method="post">
    Name: <input type="text" name="name"><br>
    <input type="submit">
</form>

Bei der Formular-Übergabe (hier per POST) erzeugt PHP die Variable $name, die genau das enthält, was sie in das Name:-Feld des Formulars eingegeben haben.

Im Zusammenhang mit Formular-Variablen versteht PHP auch Arrays, aber nur eindimensionale. Deshalb müssen sie die betreffenden Variablen vorher gruppieren oder das folgende Beispiel auf Mehrfach-Auswahl-Bereiche anwenden:

Beispiel 7-2. Komplexere Formular-Variablen

<form action="array.php" 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="binding">Binding
        <option value="warsteiner">Warsteiner
        <option value="stauder">Stauder
        <option value="stuttgarter">Stuttgarter Schwabenbräu
    </select>
    <input type="submit">
</form>

Ist das PHP-"track_vars"-Feature eingeschaltet (entweder durch track_vars-Konfigurations- Einstellung oder per <?php_track_vars?> -Anweisung), können die durch die POST- oder GET-Methode übertragenen Variablen in den globalen assoziativen Arrays $HTTP_POST_VARS und $HTTP_GET_VARS wieder gefunden werden.

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 dabei kein Unterstrich vorhanden ist (da ein Punkt enthalten ist, also z.B. "sub.x"). Dieser wird aber automatisch von PHP erzeugt.

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 SetCookie()- Funktion 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. Alle an sie gesendeten Cookies werden in PHP-Variablen umgesetzt, genau wie die Daten bei den GET- und POST-Methoden.

Wenn sie einem einzelnen Cookie verschiedene Wert zuweisen wollen müssen sie dem Cookie-Namen [] hinzufügen. Z.B.:

SetCookie ("MeinCookie[]", "Ich teste", time()+3600);

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 müssen sie deshalb z.B. einen Zähler bilden und diesen weiter leiten:

Beispiel 7-3. SetCookie-Beispiel

$Count++;
SetCookie ("Count", $Count, time()+3600);
SetCookie ("Cart[$Count]", $item, time()+3600);

Umgebungs- / Environment-Variablen

PHP sorgt automatisch für die Verfügbarkeit der Umgebungs- Variablen als normale PHP-Variablen.

echo $HOME;  /* Zeigt die HOME-Umgebungs-Variable (sofern gesetzt). */

Da Informationen per GET, POST und Cookie-Mechanismen übergeben werden, ist es manchmal das Beste, Umgebungs-Variablen explizit auszulesen. Dadurch wird die richtige Version eingelesen. Hierfür kann die getenv()-Funktion genutzt werden. Den Wert einer Umgebungs-Variablen können sie per putenv()- Funktion setzen.

Punkte in eingelesenen Variablen-Bezeichnern

Normalerweise verändert PHP nicht die Variablen-Bezeichner, 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:

$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 einer Variablen bestimmt und grundsätzlich selbst eine entsprechende Umformung vornimmt, ist es nicht immer klar, welchen Typ eine Variable gerade hat. PHP beinhaltet einige Funktionen, die dies herausfinden. Als da sind: gettype(), is_long(), is_double(), is_string(), is_array() und is_object().

Zurück | Anfang | Vor
Variable Variablen | Hoch | Konstanten


Konstanten

PHP Handbuch
Zurück Vor

Kapitel 8. Konstanten

PHP definiert eine Reihe von Konstanten und stellt einen Mechanismus zur Verfügung, mit dem man zusätzliche Konstanten zur Laufzeit definieren kann. Konstanten sind Variablen sehr ähnlich, bis auf die Tatsache, dass sie mit der define()-Funktion definiert werden müssen und später nicht mehr mit einem anderen Wert versehen werden können.

Folgende vordefinierten Variablen sind immer verfügbar:

__FILE__

Der Name der Skript-Datei, die gerade geparsed wird. Wird diese Konstante in einer Datei verwendet, die per include() oder require() eingebunden wurde, liefert sie den Namen der eingebundenen Datei, nicht den der aufrufenden Datei.

__LINE__

Die Nummer der Zeile im laufenden Skript, die gerade geparst wird. Wird diese Konstante in einer Datei benutzt, die per include() oder require() eingebunden wurde, liefert sie die Zeilennummer innerhalb der eingebundenen Datei.

PHP_VERSION

Ein String, der die Versionsnummer des PHP-Parsers enthält, der gerade verwendet wird; z. B.´3.0.8-dev´.

PHP_OS

Der Name des Betriebsystems, auf dem der PHP-Parser ausgeführt wird; z. B. ´Linux´.

TRUE

Der Wert ´wahr´.

FALSE

Der Wert ´falsch´.

E_ERROR

Bedeutet einen Fehler, der sich von einem ´parsing error´ unterscheidet. Die Ausführung des Skriptes wird beendet.

E_WARNING

Gibt einen Zustand zurück,durch den PHP weiß, dass etwas nicht in Ordnung ist, das aktuelle Skript aber trotzdem weiter ausführt; dies kann vom Skript selbst aufgefangen werden. Ein Beispiel wäre ein ungültiger regulärer Ausdruck (regexp) in der Funktion ereg().

E_PARSE

Der Parser hat Probleme mit ungültiger Syntax in der Skript-Datei. Die Ausführung des Skriptes wird beendet.

E_NOTICE

Etwas ist aufgetreten, das ein Fehler sein kann oder nicht. Das aktuelle Skript wird weiter ausgeführt. Beispiele hierfür sind ein nicht gequoteter string als Hash-Index oder der Zugriff auf eine Variable, die nicht gesetzt wurde.

Die E_*-Konstanten werden typischerweise mit der error_reporting()-Funktion benutzt, um das Fehlermeldungs-Niveau festzusetzen.

Zusätzliche Konstanten können mithilfe der define()-Funktion definiert werden.

Zu beachten ist, dass dies Konstanten sind, und keine Makros, wie man sie von C her kennt; nur gültige Skalar-Daten können von einer Konstante vertreten werden.

Beispiel 8-1. Konstanten definieren

<?php
define("CONSTANT", "Hallo Welt.");
echo CONSTANT; // gibt  "Hallo Welt." aus.
?>

Beispiel 8-2. Die Benutzung von __FILE__ und __LINE__

<?php
function report_error($file, $line, $message) {
    echo "Ein Fehler ist aufgetreten in $file in Zeile $line: $message.";
}

report_error(__FILE__,__LINE__, "Irgendetwas ist falsch gelaufen!");
?>

Zurück | Anfang | Vor
Variablen ausserhalb von PHP | Hoch | Ausdrücke


Ausdrücke

PHP Handbuch
Zurück Vor

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, dass ´$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 | Anfang | Vor
Konstanten | Hoch | Operatoren


Operatoren

PHP Handbuch
Zurück Vor

Kapitel 10. Operatoren

Inhaltsverzeichnis
Arithmetische Operatoren
Zuweisungsoperatoren
Bit-Operatoren
Vergleichs-Operatoren
Fehler-Kontroll-Operatoren
Operatoren zur Programmausführung
Inkrementierungs- bzw. Dekrementierungsoperatoren
Logische Operatoren
Operator-Rangfolge
Zeichenketten-Operatoren

Arithmetische Operatoren

Erinnerst du dich noch an die Grundrechenarten aus der Schule? Die arithmetischen Operatoren funktionieren genauso:

Tabelle 10-1. Arithmetic Operators

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.
Zurück | Anfang | Vor
Ausdrücke | Hoch | 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 rechten Operanden 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 zu tun:

$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. Beispiel:

$a = 3;
$a += 5; // setzt $a auf den Wert 8, als ob wir geschrieben haetten: $a = $a + 5;
$b = "Hallo ";
$b .= "Du!"; // setzt $b auf den Wert "Hallo Du!", aequivalent zu $b = $b . "There!";

Man beachte, dass die Zuweisung nur den Wert der Ursprungsvarialbe der neuen Variable zuweist (assignment by value)(sie "kopiert"), weshalb sich Änderungen an der einen Variablen nicht auf die andere auswirken werden. Das kann wichtig sein wenn man einen großen Array o. ä. in einer Schleife kopieren muss. PHP4 unterstützt 'assignement by reference' (Zuweisung als Verweis), mithilfe der $var = &$othervar;-Syntax, dies funktioniert jedoch nicht in PHP3. 'Assignement by reference' bedeutet, dass beide Variablen nach der Zuweisung die selben Daten repräsentieren. Nach der Zuweisung verändert eine Änderung der Variable $var auch den Inhalt der Variable &$othervar;, nichts wird kopiert, stattdessen wird ein "Verweis" auf die erste Variable angelegt.

Zurück | Anfang | Vor
Operatoren | Hoch | Bit-Operatoren


Bit-Operatoren

Bit-Operatoren erlauben es, in einem Integer bestimmte Bits "ein- oder auszuschalten" (auf 0 oder 1 zu setzen).

Tabelle 10-2. Bit-Operatoren

Beispiel | Name | Ergebnis
$a & $b | Und | Die Bits sind in $a und in $b gesetzt.
$a | $b | Oder | Die Bits sind entweder in $a oder in $b gesetzt.
$a ^ $b | Entweder oder (Xor) | Die Bits sind in $a oder in $b gesetzt, aber nicht in beiden.
~ $a | Nicht | Die Bits, die in $a nicht gesetzt sind, sind 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 links verschieben | Verschiebt die Bits von $a um $b Stellen nach rechts (jede Stelle entspricht einer Division durch zwei).
Zurück | Anfang | Vor
Zuweisungsoperatoren | Hoch | Vergleichs-Operatoren


Vergleichs-Operatoren

Vergleichs-Operatoren erlauben es - wie der Name schon sagt - zwei Werte zu vergleichen.

Tabelle 10-3. Vergleichsoperatoren

Beispiel | Name | Ergebnis
$a == $b | Gleich | Gibt "wahr" zurück, von $a gleich $b ist.
$a === $b | Identisch | Gibt "wahr" zurück wen $a gleich $b ist und beide vom gleichen Typ sind(funktioniert nur in PHP4)
$a != $b | Ungleich | Gibt "wahr" zurück, wenn $a nicht gleich $b ist.
$a < $b | Kleiner Als | Gibt "wahr" zurück, wenn $a kleiner als $b ist.
$a > $b | Größer Als | Gibt "wahr" zurück, wenn $a größer als $b ist.
$a <= $b | Kleiner Gleich | Gibt "wahr" zurück", wenn $a kleiner oder gleich $b ist.
$a >= $b | Größer Gleich | Gibt "wahr" zurück, wenn $a größer oder gleich $b ist.

Ein weiter Vergleichs-Operator ist der "?:"- oder Trinitäts-Operator. Er arbeitet genauso wie in C und vielen anderen Programmier-Sprachen.

(ausdr1) ? (ausdr2) : (ausdr3);

Dieser Ausdruch gibt ausdr2 zurück, wenn ausdr1 "wahr" zurückgibt, und ausdr3, wenn ausdr1 "falsch" zurückgibt.

Zurück | Anfang | Vor
Bit-Operatoren | Hoch | 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 globalen 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 SQL-Fehler (zusätzliches Anfuehrungszeichen): */
$res = @mysql_query( "select name, code from 'namelist" ) or
   die( "SQL-Anfrage fehlgeschlagen: Fehlermeldung: '$php_errormsg'" );
?>

Siehe auch error_reporting().

Zurück | Anfang | Vor
Vergleichs-Operatoren | Hoch | 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, sondern entsprechen auf den meisten Tastaturen den Tasten für die frz. Accents. PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird der die Ausgabe des aufgegebenen Programms (d. h. die Ausgabe wird nicht einfach gelöscht, sondern kann einer Variablen zugewiesen werden).

$output = `ls -al`;
echo "<pre>$output</pre>";

Siehe auch system(),
passthru(), exec(),
popen(), und
escapeshellcmd().

Zurück | Anfang | Vor
Fehler-Kontroll-Operatoren | Hoch | Inkrementierungs- bzw. Dekrementierungsoperatoren


Inkrementierungs- bzw. Dekrementierungsoperatoren

PHP unterstützt Prä- und Post-Inkrementierungs- und Dekrementierungsoperatoren im Stil der Programmiersprache C.

Tabelle 10-4. 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 einfach 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>Prae-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>Predecrement</h3>";
$a = 5;
echo "Sollte 4 sein: " . --$a . "<br>\n";
echo "Sollte 4 sein: " . $a . "<br>\n";
?>

Zurück | Anfang | Vor
Operatoren zur Programmausführung | Hoch | Logische Operatoren


Logische Operatoren

Tabelle 10-5. Logische Operatoren

Beispiel | Name | Ergebnis
$a and $b | Und | Wahr sowohl $a als auch $b wahr ist.
$a or $b | Oder | Wahr wenn $a oder $b wahr ist.
$a xor $b | Entweder Oder | Wahr wenn entweder $a oder $b wahr ist, aber nicht beide.
! $a | Nicht | Wahr wenn $a nicht wahr ist.
$a && $b | Und | Wahr sowohl $a als auch $b wahr ist.
$a || $b | Oder | Wahr wenn $a oder $b wahr ist.

Der Grund dafür, dass es je zwei unterschiedliche Operatoren für die "Und"- und die "Oder"-Verknüpfung gibt ist, dass die beiden Operatoren jeweils einen unterschiedliche Plätze in der Operator-Rangfolge haben. (siehe auch Operator-Rangfolge.)

Zurück | Anfang | Vor
Inkrementierungs- bzw. Dekrementierungsoperatoren | Hoch | Operator-Rangfolge


Operator-Rangfolge

Die Operator-Rangfolge legt fest, wie "eng" ein Operator zwei Ausdrücke miteinander verbindet. Das Ergebnis des Ausdruckes 1 + 5 * 3 ist z. B. 16 und nicht 18, da der Mulitiplikations-Operator (*) in der Rangfolge höher steht als der Additions-Operator (+).

Die folgende Tabelle zeigt die Rangfolge der Operatoren, oben steht der Operator mit dem niedrigsten Rang.

Tabelle 10-6. Operator-Rangfolge

Associativity | Operator
links | ,
links | or
links | xor
links | and
rechts | print
links | = += -= *= /= .= %= &= |= ^= ~= <<= >>=
links | ? :
links | ||
links | &&
links | |
links | ^
links | &
keine Richtung | == != ===
keine Richtung | < <= > >=
links | << >>
links | + - .
links | * / %
rechts | ! ~ ++ -- (int) (double) (string) (array) (object) @
rechts | [
keine Richtung | new

Zurück | Anfang | Vor
Logische Operatoren | Hoch | Zeichenketten-Operatoren


Zeichenketten-Operatoren

Es gibt in PHP zwei Operatoren für Zeichenketten. Der erste ist Vereinigungs-Operator. ('.'), dessen Rückgabewert eine Zeichenkette, zusammengesetzt aus dem rechten und dem linken Argument, ist. Der zweite ist der Vereinigungs-Zuweisungsoperator ('.='). Siehe Zuweisungs-Operatoren für weitere Informationen.

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

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

Zurück | Anfang | Vor
Operator-Rangfolge | Hoch | Kontroll-Strukturen


Kontroll-Strukturen

PHP Handbuch
Zurück Vor

Kapitel 11. Kontroll-Strukturen

Inhaltsverzeichnis
if
else
elseif
Alternative Syntax für Kontroll-Strukturen
while
do..while
for
foreach
break
continue
switch
require()
include()
require_once()
include_once()

Jedes PHP-Skript besteht aus einer Reihe von Anweisungen. Eine Anweisung kann aus einem Funktions-Aufruf, einer Schleife, einer bedingten Anweisung oder einem Befehl, der nichts macht (eine leere Anweisung), bestehen. Jeder Befehl endet gewöhnlich mit einem Semikolon. Darüber hinaus können Befehle zu einer Anweisungsgruppe zusammengefasst werden, welche durch geschweifte Klammern begrenzt wird. Eine Anweisungsgruppe ist auch eine Anweisung. Die unterschiedlichen Arten von Anweisungen werden in diesem Abschnitt erläutert.

if

Der if-Befehl ist eine der wichtigsten Möglichkeiten vieler Programmier-Sprachen, PHP eingeschlossen. Er erlaubt die bedingte Ausführung von Programmteilen. PHP beinhaltet eine if-Struktur, die ähnlich der C-Programmiersprache ist:

if (expr)
    Anweisung

Wie im Abschnitt über Expressions / Ausdrücke beschrieben, wird expr auf seinen wirklichen Wertinhalt ausgewertet. Wenn expr TRUE entspricht, wird PHP Anweisung ausführen, falls nicht - sie also FALSE ist - wird Anweisung übergangen.

Das folgende Beispiel wird a ist grösser als b anzeigen, wenn $a grösser ist als $b:

if ($a > $b)
    print "a ist grösser 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. Z.B. wird der folgende Programm-Code a ist grösser als b anzeigen, wenn $a grösser ist als $b. Danach wird der Wert von $a in $b gespeichert:

if ($a > $b) {
    print "a ist grösser als b";
    $b = $a;
}

If-Anweisungen können ohne Einschränkung innerhalb anderer if-Anweisungen definiert werden. Das ermöglicht ihnen völlige Flexibilität bei der bedingten Ausführung verschiedenster Programmteile.

Zurück | Anfang | Vor
Zeichenketten-Operatoren | Hoch | else


else

Häufig ist es erforderlich, 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 angesehen wird. Der folgende Code wird z.B. a ist grösser als b anzeigen, wenn $a grösser ist als $b, anderenfalls a ist NICHT grösser als b:

if ($a > $b) {
    print "a ist grösser als b";
} else {
    print "a ist NICHT grösser 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 | Anfang | Vor
Kontroll-Strukturen | Hoch | elseif


elseif

Elseif ist, wie der Name schon sagt, 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 angesehen wird. Anders als bei else wird die Ausführung dieser anderen Anweisungen nur durchgeführt, wenn die bei elseif angegebene alternative Bedingung als TRUE angesehen wird. Der folgende Code wird z.B. a ist grösser als b, a ist gleich b oder a ist kleiner als b ausgeben:

if ($a > $b) {
    print "a ist grösser als b";
} elseif ($a == $b) {
    print "a ist gleich b";
} else {
    print "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), genau wie in C.

Die elseif-Anweisung wird nur ausgeführt, wenn die vorausgehende if-Bedingung sowie jede vorherige elseif-Bedingung FALSE ist und die aktuelle elseif-Bedingung TRUE ist.

Zurück | Anfang | Vor
else | Hoch | Alternative Syntax für Kontroll-Strukturen


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. Immer muss die öffnende Klammer durch einen Doppelpunkt ":"quot; und die schließende Klammer durch ein endif;, endwhile;, endfor;, endforeach; bzw. endswitch; ersetzt werden.

<?php if ($a == 5): ?>
    A ist gleich 5
<?php endif; ?>

Im obigen Beispiel ist der HTML-Bereich eingebettet in eine if-Anweisung mit alternativer Syntax. 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:

if ($a == 5):
    print "a ist gleich 5";
    print "...";
elseif ($a == 6):
    print "a ist gleich 6";
    print "!!!";
else:
    print "a ist weder 5 noch 6";
endif;

Siehe auch while, for und if für weitere Beispiele.

Zurück | Anfang | Vor
elseif | Hoch | while


while

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

while (expr) Anweisung

Die Bedeutung einer while-Anweisung ist einfach. Sie weist PHP an, einen in ihr eingebetteten Befehl so lange zu wiederholen, bis die while-Bedingung TRUE geworden ist. Der Wert der Bedingung wird immer am Anfang der Schleife geprüft. Wird der Wert während der Ausführung der Befehle innerhalb der while-Schleife geändert, endet die Ausführung dieses Befehls-Blocks nicht vor einem neuem Schleifen-Durchlauf (Iteration). Jeder Schleifendurchlauf ist eine Iteration. Falls die while-Bedingung bereits zu Beginn FALSE ist, werden die Anweisungen der while-Schleife nicht ein einziges Mal durchlaufen.

Wie bei der if-Anweisung kann man mehrere Befehle innerhalb einer Schleife angeben, indem man sie mit geschweiften Klammern umschliesst oder die alternative Syntax gebraucht:

while (expr): statement ... endwhile;

Die folgenden Beispiele sind identisch; beide geben Zahlen von 1 bis 10 aus:

/* Beispiel 1 */

$i = 1;
while ($i <= 10) {
    print $i++;  /* es wird erst $i ausgegeben,
                    bevor der Wert erhöht wird
                    (post-increment) */
}

/* Beispiel 2 */

$i = 1;
while ($i <= 10):
    print $i;
    $i++;
endwhile;

Zurück | Anfang | Vor
Alternative Syntax für Kontroll-Strukturen | Hoch | do..while


do..while

Do..while-Schleifen sind den while-Schleifen sehr ähnlich, ausser dass die Erfüllung des Ausdrucks am Ende jedes Durchlaufs geprüft wird (statt am Anfang). Der Hauptunterschied zu gewöhnlichen while-Schleifen ist, dass der erste Schleifen-Durchlauf bei do..while in jedem Fall statt findet, wogegen es bei while-Schleifen durchaus passieren kann, dass die Schleife nie durchlaufen wird, wenn die am Anfang zu prüfende Bedingung schon zu Beginn FALSE ist.

Es gibt nur eine Syntax für do..while-Schleifen:

$i = 0;
do {
    print $i;
} while ($i>0);

Die obige Schleife wird genau einmal durchlaufen, da nach der ersten Wiederholung die Erfüllung der Bedingung geprüft wird. Da diese aber nicht erfüllt, also FALSE ist ($i ist nicht grösser als 0), wird 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 dies:

do {
    if ($i < 5) {
        print "i ist nicht gross genug";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print "i ist ok";

    ...process 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 | Anfang | Vor
while | Hoch | for


for

For-Schleifen sind die komplexesten Schleifen in PHP. Sie funktionieren wie ihr Gegenstück in C. Die Syntax einer for-Schleife sieht so aus:

for (expr1; expr2; expr3) Anweisung

Der erste Parameter (expr1) wird beim Schleifenbeginn geprüft bzw. ausgeführt (ohne jegliche Vorbedingung).

Zu Beginn jedes Durchlaufs wird nun expr2 geprüft. Wenn dieser TRUE ist, fährt die Schleife weiter fort mit der Ausführung der nachfolgenden Befehle. Wenn das Ergebnis FALSE lautet, wird die Schleife beendet.

Am Ende jedes Durchlaufs wird nun auch noch expr3 geprüft / ausgeführt.

Jeder der Parameter kann leer sein (optional). Ist expr2 leer, wird die Schleife unbestimmt oft durchlaufen, da PHP ihn als TRUE wertet (wie in C). Das ist nicht so sinnlos, wie Sie vielleicht 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:

      /* Beispiel 1 */

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

      /* Beispiel 2 */

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

      /* Beispiel 3 */

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

      /* Beispiel 4 */

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

Selbstverständlich sieht das erste (oder 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 (expr1; expr2; expr3): Anweisung; ...; endfor;

Andere Sprachen haben für das Durchlaufen eines Hash´s oder Arrays eine foreach-Anweisung. PHP 3 hat dies nicht; im Gegensatz zu PHP 4 (vgl. foreach). In PHP 3 kann man dafür eine Kombination von while mit der list()- und each()-Funktion einsetzen. Beispiele finden Sie in der Dokumentation zu diesen Funktionen.

Zurück | Anfang | Vor
do..while | Hoch | foreach


foreach

PHP 4 (nicht PHP 3) enthält eine foreach-Funktion, genau wie Perl und andere Sprachen. Diese ermöglicht es, auf einfache Weise ein Array zu durchlaufen. Es gibt zwei Syntax-Formen; 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 1 erhöht. Dadurch wird beim nächsten Durchgang automatisch das nächste Element ausgewertet.

Die zweite Form arbeitet genauso, ausser 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 Array-Pointer automatisch auf das erste Element des Arrays zurück gesetzt. Das heisst, dass Sie nicht reset() vor einem Durchlauf von foreach aufrufen müssen.

Anmerkung: Beachten Sie auch, dass foreach mit einer Kopie des angegebenen Arrays arbeitet. Deshalb wird auch der Array-Pointer nicht wie bei dem each-Konstrukt verändert.

Beachten Sie, dass die folgenden Beispiele in ihrer Funktionalität identisch sind:

      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:

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:

/* foreach Beispiel 1: Nur der Wert */

$a = array (1, 2, 3, 17);

foreach ($a as $v) {
    print "Aktueller Wert von \$a: $v.\n";
}

/* foreach Beispiel 2: Wert (mit Ausgabe des Array-Schlüssels) */

$a = array (1, 2, 3, 17);

$i = 0; /* nur für Anschauungs-Zweck */

foreach($a as $v) {
    print "\$a[$i] => $k.\n";
}

/* foreach Beispiel 3: Schlüssel und Wert */

$a = array (
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach($a as $k => $v) {
    print "\$a[$k] => $v.\n";
}

Zurück | Anfang | Vor
for | Hoch | break


break

Break bricht die Ausführung der aktuellen for, while oder switch Anweisungs-Sequenz ab.

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

$arr = array ('eins', 'zwei', 'drei', 'stop', 'vier');
while (list ( , $val) = each ($arr)) {
    if ($val == 'stop') {
        break;  /* Man kann 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; quitting<br>\n";
                break 2;  /* Beendet switch und while. */
            default:
                break;
    }
}

Zurück | Anfang | Vor
foreach | Hoch | continue


continue

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

Continue kann optional ein numerisches Argument erhalten, das die Anzahl der zu überspringenden Schleifendurchläufe beinhaltet.

while (list ($key, $value) = each ($arr)) {
    if (!($key % 2)) { // überspringe ungerade Werte
        continue;
    }
    tue_was_mit_ungerade ($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Aussen<br>\n";
    while (1) {
        echo "  Mitte<br>\n";
        while (1) {
            echo "  Innen<br>\n";
            continue 3;
        }
        echo "Das wird nie ausgegeben.<br>\n";
    }
    echo "Dies auch nicht.<br>\n";
}

Zurück | Anfang | Vor
break | Hoch | switch


switch

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

Die folgenden 2 Beispiele zeigen 2 verschiedene Wege, das gleiche zu bewirken; eins gebraucht mehrere if-Befehle, das andere eine switch-Anweisung:

if ($i == 0) {
    print "i ist gleich 0";
}
if ($i == 1) {
    print "i ist gleich 1";
}
if ($i == 2) {
    print "i ist gleich 2";
}

switch ($i) {
    case 0:
        print "i ist gleich 0";
        break;
    case 1:
        print "i ist gleich 1";
        break;
    case 2:
        print "i ist gleich 2";
        break;
}

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 nichts ausgeführt. Erst wenn bei einem case-Teil eine Entsprechung zum switch-Ausdruck vorliegt, werden die darin enthaltenen Befehle 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. Z.B.:

switch ($i) {
    case 0:
        print "i ist gleich 0";
    case 1:
        print "i ist gleich 1";
    case 2:
        print "i ist gleich 2";
}

Wenn hier $i gleich 0 ist, würde PHP alle print-Anweisungen ausführen. Ist $i gleich 1, würden die letzten beiden print-Befehle ausgeführt und wenn $i = 2 ist, würde nur der letzte print-Befehl ausgeführt. Deshalb ist es wichtig, bei der ersten gefundenen Übereinstimmung eine break-Anweisung zu setzen (abgesehen von bestimmten Fällen, wo genau dieses Verhalten gefordert wird).

Bei einer switch-Anweisung wird die Bedingung also nur einmal überprüft und das Ergebnis mit jeder case-Anweisung verglichen. Bei einem elseif-Befehl wird die Bedingung neu geprüft. Eine switch-Anweisung kann schneller als mehrere if-Befehle sein, z.B. bei komplizierteren Bedingungen als einem einfachen Vergleich.

Der Anweisungsteil von case kann auch leer sein. Dann wird die Kontrolle einfach an den nächsten case-Teil übergeben.

switch ($i) {
    case 0:
    case 1:
    case 2:
        print "i ist kleiner als 3 aber nicht negativ";
        break;
    case 3:
        print "i ist gleich 3";
}

Ein Spezialfall ist die Anweisung default. Diese trifft auf alles zu, was nicht von den voranstehenden case-Ausdrücken erfasst wurde, wie z.B.:

switch ($i) {
    case 0:
        print "i ist gleich 0";
        break;
    case 1:
        print "i ist gleich 1";
        break;
    case 2:
        print "i ist gleich 2";
        break;
    default:
        print "i ist weder 0, 1 noch 2";
}

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 werden auf einfache Typen herunter gebrochen.

Die alternative Syntax gilt auch für switch-Sequenzen. Mehr Informationen dazu unter Alternative Syntax für Kontroll-Strukturen .

switch ($i):
    case 0:
        print "i ist gleich 0";
        break;
    case 1:
        print "i ist gleich 1";
        break;
    case 2:
        print "i ist gleich 2";
        break;
    default:
        print "i ist weder 0, 1 noch 2";
endswitch;

Zurück | Anfang | Vor
continue | Hoch | require()


require

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Vor

require()

Der require()-Befehl setzt an seine Stelle den Inhalt der angegebenen Datei (ähnlich dem #include von C).

Wenn die PHP-Konfigurations-Option "URL fopen wrappers" auf enabled (per default) steht, können Sie für die mittels require() eingebundene Datei statt einer lokalen Pfadangabe auch eine URL angeben. Sehen Sie hierzu unter Remote-Dateien und fopen() für weitere Informationen nach.

Wichtig: PHP kehrt zu Beginn der per include() oder require() eingebundenen Dateien vom PHP- in den HTML-Modus und am Schluß der Datei wieder vom HTML- in den PHP-Modus zurück. Falls innerhalb dieser Dateien also PHP-Code ausgeführt werden soll, muss dieser eingeschlossen werden von gültigen PHP-Start- und PHP-Ende-Marken (siehe gültige PHP-Start- und Ende-Tags).

Require() ist keine PHP-Anweisung, sondern eine spezielle Sprachanweisung. Sie ist anderen Regeln unterworfen als Funktionen. Einerseits unterliegt sie keinen Kontroll-Srukturen, andererseits gibt sie keinen Wert zurück. Der Versuch, von einem require()-Aufruf einen Rückgabewert zu erhalten, führt zu einem Parse-Fehler.

Anders als include() wird require() immer die angegebene Datei einlesen, auch dann, wenn die Programmzeile, in der sie steht, nicht ausgeführt wird. Wenn Sie eine Datei nur bedingt einlesen wollen, benutzen Sie include(). Die bedingte Anweisung würde require() nicht davon abhalten, die Datei zu laden.

Innerhalb von Schleifen tritt der Effekt auf, dass, obwohl die den require()-Befehl enthaltende Zeile mehrfach angesprungen wird, die entsprechende Datei trotzdem nur genau einmal eingelesen (ausgeführt) wird.

Sie können also require() nicht innerhalb von Programm-Schleifen einsetzen. Deshalb, und wenn Sie verschiedene Dateien einlesen wollen, müssen Sie in Schleifen den Befehl include() benutzen.

require ('header.inc');

Wird eine Datei per require() eingebunden, dann "erbt" der darin enthaltene Code die bis zur Skriptzeile mit der require()-Anweisung definierten Variablen und deren Inhalt. Alle innerhalb der eingebundenen Datei Definitionen von Variablen stehen ab dieser Zeile zur Verfügung. Steht die require()-Anweisung innerhalb einer Funktion, wird der darin stehende Code behandelt, als ob er innerhalb der Funktion stehen würde.

Wird die mittels require() einzubindende Datei über HTTP (fopen wrapper) aufgerufen und sieht der Ziel-Server die Ziel-Datei als PHP-Code ansieht, dann werden die Variablen an die einzubindende Datei wie bei einem HTTP GET übergeben. Das entspricht nicht genau der Einbindung einer lokalen Datei, da das Skript auf dem entfernten Server ausgeführt wird und nur die Ergebnisse in das lokale Skript eingebunden werden.

/* Dieses Beispiel geht davon aus, dass ein beliebiger Server zum
 * Parsen von *.php-Dateien konfiguriert ist. Also meint 'funkt' hier,
 * dass die Variablen $vareins und $varzwei innerhalb der angeforderten
 * Datei vorhanden sind. */

/* Funkt. nicht; file.txt wird vom besagten Server nicht geparst. */
require ("http://someserver/file.txt?vareins=1&varzwei=2");

/* Funkt. nicht; schaut nach einer lokalen Datei namens
/* 'file.php?varone=1&vartwo=2' */
require ("file.php?vareins=1&varzwei=2");

/* Funkt. */
require ("http://someserver/file.php?vareins=1&varzwei=2");

$vareins = 1;
$varzwei = 2;
require ("file.txt");    /* Funkt. */
require ("file.php");    /* Funkt. */

In PHP 3 ist es möglich, eine return-Anweisung innerhalb einer per require() eingebundenen Datei auszuführen, solange diese Anweisung im Hauptteil dieser Datei steht. Die return-Anweisung darf nicht in Blöcken (also innerhalb von geschwungenen Klammern "{}" stehen. In PHP 4 existiert diese Möglichkeit nicht mehr. Wenn Sie diese dennoch benötigen, sehen Sie unter include() nach.

Siehe auch include(), require_once(),
include_once(), readfile()
und virtual().

Zurück | Anfang | Vor
switch | Hoch | include()


include

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Vor

include()

Die include()-Anweisung liest die angegebene Datei ein und wertet sie aus.

Wenn die PHP-Konfigurations-Option "URL fopen wrappers" auf enabled (per default) steht, können Sie für die mittels include() eingebundene Datei statt einer lokalen Pfadangabe auch eine URL angeben. Sehen Sie hierzu unter Remote-Dateien und fopen() für weitere Informationen nach.

Wichtig ist, dass beim include()- oder require()-Befehl vom PHP-Parsing-Modus in den HTML-Modus geschaltet wird und bei Rückkehr in das aufrufende Skript wieder zurück vom HTML- in den PHP-Modus. Deshalb muss jeder PHP-Code innerhalb der eingebundenen Dateien umschlossen werden von gültigen PHP-Start- und Ende-Tags.

Das passiert jedes Mal, sobald die include()-Anweisung auftritt. Deshalb können Sie include() auch sehr gut innerhalb von Schleifen verwenden, um eine Anzahl unterschiedlicher Dateien einzubinden.

$files = array ('first.inc', 'second.inc', 'third.inc');
for ($i = 0; $i < count($files); $i++) {
    include $files[$i];
}

Include() unterscheidet sich von require() dadurch, dass die include-Anweisung jedesmal neu ausgewertet wird, sobald sie auftritt (und nur zur Ausführungszeit). Dagegen wird die require()-Anweisung beim ersten Auftreten mit der angegebenen Datei ersetzt, egal ob sie einzubinden ist oder nicht (innerhalb von bedingten Anweisungen, z.B. bei if auch dann, wenn das ausgewertete Argument false ergeben hat).

Da include() ein spezieller Sprach-Konstrukt ist, müssen Sie ihn innerhalb einer bedingten Anweisung in einen Anweisungsblock setzen.

/* Das ist falsch und führt nicht zum gewünschten Ergebnis. */

if ($Bedingung)
    include($diesedatei);
else
    include($anderedatei);

/* Diese ist korrekt. */

if ($Bedingung) {
    include($diesedatei);
} else {
    include($anderedatei);
}

Sowohl in PHP 3 als auch in PHP 4 ist es möglich, eine return-Anweisung innerhalb einer include()eten Datei anzugeben, um die Ausführung dieser Datei abzubrechen und zum aufrufenden-Skript zurück zu kehren. Es gibt aber ein paar Unterschiede in der Arbeitsweise. Der erste ist, dass bei PHP 3 die return-Anweisung nicht innerhalb eines Blocks auftreten darf, es sei denn, es ist ein Funktions-Block. In diesem Fall gilt return für diese Funktion und nicht für die ganze Datei. In PHP 4 gibt es diese Beschränkung nicht. PHP 4 erlaubt ihnen auch die Rückgabe von Werten bei include()eten Dateien. Sie können den Wert des include()-Aufrufs nutzen, als wenn Sie eine Funktion aufgerufen hätten. Das wird in PHP 3 einen Parse-Error ergeben.

Beispiel 11-1. Include() in PHP 3 und PHP 4

Beachten Sie, dass die folgende Datei, genannt test.inc) im gleichen Verzeichnis wie die Hauptdatei stehen muss:

<?php
echo "Vor dem Return <br>\n";
if (1) {
    return 27;
}
echo "Nach dem Return <br>\n";
?>

Die Datei main.html enthält folgendes:

<?php
$retval = include ('test.inc');
echo "Datei gibt zurück: '$retval'<br>\n";
?>

Sobald main.html in PHP 3 aufgerufen wird, wird ein Parse-Error in Zeile 2 angezeigt; Sie können in PHP 3 also keinen Rückgabewert von include() erhalten. In PHP 4 wird das Ergebnis sein:

Vor dem Return
Datei gibt zurück: '27'

Die Datei main.html soll nun folgendes enthalten:

<?php
include ('test.inc');
echo "Zurück in main.html<br>\n";
?>

In PHP 4 wird die Ausgabe sein:

Vor dem Return
Zurück in main.html
PHP 3 wird dagegen folgendes ausgeben:

Vor dem Return
27Zurück in main.html

Parse error: parse error in /home/torben/public_html/phptest/main.html on line 5

Der obige Parse-Error ist das Ergebnis der Tatsache, dass die return-Anweisung innerhalb eines Nicht-Funktions-Blocks von test.inc steht. Wenn das return ausserhalb diese Blocks zu stehen kommt, wird die Ausgabe wie folgt aussehen:

Before the return
27Back in main.html

Die '27' entsteht aus der Tatsache, dass PHP 3 keine solchen Rückgabewerte unterstützt.

Wird eine Datei per include() eingebunden, dann "erbt" der darin enthaltene Code die bis zur Skriptzeile mit der include()-Anweisung definierten Variablen und deren Inhalt. Alle innerhalb der eingebundenen Datei Definitionen von Variablen stehen ab dieser Zeile zur Verfügung. Steht die include()-Anweisung innerhalb einer Funktion, wird der darin stehende Code behandelt, als ob er innerhalb der Funktion stehen würde.

Wird die mittels include() einzubindende Datei über HTTP (fopen wrapper) aufgerufen und sieht der Ziel-Server die Ziel-Datei als PHP-Code ansieht, dann werden die Variablen an die einzubindende Datei wie bei einem HTTP GET übergeben. Das entspricht nicht genau der Einbindung einer lokalen Datei, da das Skript auf dem entfernten Server ausgeführt wird und nur die Ergebnisse in das lokale Skript eingebunden werden.

/* Dieses Beispiel geht davon aus, dass ein beliebiger Server zum
 * Parsen von *.php-Dateien konfiguriert ist. Also meint 'funkt' hier,
 * dass die Variablen $vareins und $varzwei innerhalb der angeforderten
 * Datei vorhanden sind. */

/* Funkt. nicht; file.txt wird vom besagten Server nicht geparst. */
include ("http://someserver/file.txt?vareins=1&varzwei=2");

/* Funkt. nicht; schaut nach einer lokalen Datei namens
/* 'file.php?varone=1&vartwo=2' */
include ("file.php?vareins=1&varzwei=2");

/* Funkt. */
include ("http://someserver/file.php?vareins=1&varzwei=2");

$vareins = 1;
$varzwei = 2;
include ("file.txt");    /* Funkt. */
include ("file.php");    /* Funkt. */

Lassen Sie sich nicht durch die Tatsache irritieren, dass Sie Dateien auch über HTTP per require oder include einbinden können (vgl. Remote files). Das oben Gesagte behält seine Gültigkeit.

Siehe auch require(),
require_once(),
include_once(),
readfile() und virtual().


require_once

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Vor

require_once()

Die require_once()-Anweisung ersetzt sich selbst durch die angegebene Datei (ähnlich der C-Preprozessor-Anweisung #include), funktioniert also ähnlich wie die require()-Anweisung. Der Hauptunterschied dazu liegt in der Tatsache, dass bei require_once() der einzubindende Code genau einmal in das Skript eingefügt wird.

Sie erzeugen beispielsweise die folgenden zwei Include-Dateien utils.inc und foolib.inc:

Beispiel 11-2. utils.inc

<?php
define(PHPVERSION, floor(phpversion()));
echo "GLOBALE SIND GUT\n";
function guterTee() {
    return "Oolong-Tee schmeckt gut!";
}
?>

Beispiel 11-3. foolib.inc

<?php
require ("utils.inc");
function zeigeVar($var) {
    if (PHPVERSION == 4) {
        print_r($var);
    } else {
        var_dump($var);
    }
}

// es folgen weiter Funktionen ...
?>
Nun schreiben Sie ein Skript cause_error_require.php:

Beispiel 11-4. cause_error_require.php

<?php
require("foolib.inc");
/* das Folgende erzeugt einen Fehler */
require("utils.inc");
$foo = array("1",array("complex","quaternion"));
echo "dies erfordert utils.inc, das auch\n";
echo "in foolib.inc erforderlich ist\n";
echo "Aufruf von guterTee: ".guterTee()."\n";
echo "Ausgabe foo: \n";
showVar($foo);
?>
Wenn Sie letzteres starten, wird folgende Ausgabe erzeugt (gilt für PHP 4.01pl2):

GLOBALE SIND GUT
GLOBALE SIND GUT

Fatal error:  Cannot redeclare causeerror() in utils.inc on line 5

Durch Umschreiben von foolib.inc und cause_errror_require.php (Gebrauch von require_once() statt require()) und Umbenennung des letzten Skriptes zu avoid_error_require_once.php haben wir nun:

Beispiel 11-5. foolib.inc (fixed)

...
require_once("utils.inc");
function showVar($var) {
...

Beispiel 11-6. avoid_error_require_once.php

...
require_once("foolib.inc");
require_once("utils.inc");
$foo = array("1",array("complex","quaternion"));
...
Beim nachfolgenden Aufruf wird folgende Ausgabe erzeugt (bei PHP 4.0.1pl2):

GLOBALE SIND GUT
dies erfordert utils.inc, das auch
in foolib.inc erforderlich ist
Aufruf von guterTee: Oolong-Tee schmeckt gut!.
Ausgabe foo:
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => complex
            [1] => quaternion
        )

)

Beachten Sie, dass analog zum Verhalten von #include im C-Preprozessor diese Anweisung zur Zeit der Skript-"Compilierung" ausgewertet wird; sollten Sie also z.B. das Skript vor dessen Ausführung parsen und bei der Ausführung keinen Gebrauch machen wollen von dynamisch einzuschließenden Teilen, sollten Sie include_once() oder include() verwenden.

Weiter Beispiele zu require_once() und include_once() können Sie dem PEAR-Code entnehmen, welcher im aktuellsten PHP-Source-Code enthalten ist.

Siehe auch: require(),
include(), include_once(),
get_required_files(),
get_included_files(),
readfile(),
und virtual().


include_once

PHP Handbuch
Zurück Kapitel 11. Kontroll-Strukturen Vor

include_once()

Die Anweisung include_once() schließt zur Ausführungszeit das angegebene Skript ein und führt es aus. Dies ist ähnlich der include()-Anweisung; mit dem Unterschied, dass einmal "includierter" Code nicht nochmals eingebunden wird.

Wie in der Beschreibung zu require_once() bereits angemerkt, soll include_once() in den Fällen verwendet werden, wo die selbe Datei mehr als einmal während der Ausführung eingebunden werden soll und Sie Wiederholungen bei den Funktions-Definitionen und Wertzuweisungen zu Variablen usw. vermeiden müssen.

Weiter Beispiele zu require_once() und include_once() können Sie dem PEAR-Code entnehmen, welcher im aktuellsten PHP-Source-Code enthalten ist.

include_once() steht ab PHP 4.01pl2 zur Verfügung.

Siehe auch: require(),
include(), require_once(),
get_required_files(),
get_included_files(),
readfile() und virtual().

Zurück | Anfang | Vor
require_once() | Hoch | Funktionen


Funktionen

PHP Handbuch
Zurück Vor

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 PHP3 müssen Funktionen definiert sein, bevor man auf sie verweist. In PHP4 ist das nicht mehr erforderlich.

Zurück | Anfang | Vor
include_once() | Hoch | Funktionsparameter


Funktionsparameter

Mit einer Parameterliste kann man Informationen an eine Funktion übergeben. Die Parameterliste ist eine kommagetrennte 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 beliebigen Parameterzahl ist nicht möglich, einen ähnlichen Effekt kann man aber durch die Übergabe von Arrays 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 ausserhalb der Funktion unverändert. Wollen Sie aber genau das erreichen, dann müssen Sie die Parameter als Verweise übergeben.

Wenn eine Funktion einen Parameter generell als Verweis behandeln soll, setzt man ein kaufmännisches Und (&) in der Funktionsdefinition vor den Parameternamen:

function fuege_etwas_anderes_an (&$string) {
    $string .= 'und nun zu etwas völlig anderem.';
}
$str = 'Dies ist ein String, ';
fuege_etwas_anderes_an ($str);
echo $str; // Ausgabe 'Dies ist ein String, und nun zu etwas völlig anderem.'

Wenn Sie eine Variable andererseits als Verweis an eine Funktion übergeben wollen, die dies nicht tut, können Sie das kaufmännische Und (&) auch beim Aufruf der Funktion verwenden:

function bla ($fasel) {
    $fasel .= ' und nun zu etwas völlig anderem.';
}
$str = 'Dies ist ein String, , ';
bla ($str);
echo $str;  // outputs 'Dies ist ein String, '
bla (&$str);
echo $str;  // outputs 'Dies ist ein String, und nun zu etwas völlig 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 makecoffee ("Espresso");

Die Ausgabe von diesem kleinen Skript ist:

Ich mache eine Tasse Cappucino.
Ich mache eine Tasse Espresso.

Der Vorgabewert muß eine Konstante 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_jogurt ("Brombeer");   // arbeitet wie erwartet.

... und jetzt ist die Ausgabe:

Mache einen Becher rechtsdrehendes Brombeer-Joghurt.

Zurück | Anfang | Vor
Funktionen | Hoch | 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.

function quadrat ($zahl) {
    return $zahl * $zahl;
}
echo quadrat (4);   // gibt '16' aus.

Es ist leider nicht möglich, mehrere Werte von einer Funktion zurückgeben zu lassen. Ein ähnliches Resultat kann man aber durch die Rückgabe von Listen bekommen.

function kleine_zahlen() {
   return array (0, 1, 2);
}
list ($null, $eins, $zwei) = kleine_zahlen();

Zurück | Anfang | Vor
Funktionsparameter | Hoch | old_function


old_function

Der Befehl old_function erlaubt es, ein 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, die die old_function aufruft.

Zurück | Anfang | Vor
Rückgabewerte | Hoch | Variablenfunktionen


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. Diese Möglichkeit kann für Callbacks, Funktionstabellen und

Beispiel 12-1. Beispiel für Variablenfunktionen

<?php
function blah() {
    echo "In blah()<br>\n";
}

function fasel( $arg = '' ) {
    echo "In fasel(); ist der Parameter '$arg'.<br>\n";
}

$func = 'blah';
$func();
$func = 'fasel';
$func( 'test' );
?>

Zurück | Anfang | Vor
old_function | Hoch | Klassen und Objekte


Klassen und Objekte

PHP Handbuch
Zurück Vor

Kapitel 13. Klassen und Objekte

Inhaltsverzeichnis
Klassen

Klassen

Eine Klasse ist eine Sammlung von Variablen und von Funktionen, die mit diesen Variablen arbeiten. Eine Klasse wird folgendermaßen definiert:

<?php
class Einkaufswagen {
    var $produkte;  // Produkte in Ihrem Einkaufswagen

    // Füge dem Einkaufswagen $anzahl Artikel der Sorte $artnr zu

    function fuege_hinzu ($artnr, $anzahl) {
        $this->produkte[$artnr] += $anzahl;
    }

    // Nimm $anzahl von Artikel wieder aus dem Einkaufswagen

    function nimm_heraus ($artnr, $anzahl) {
        if ($this->produkte[$artnr] > $anzahl) {
            $this->produkte[$artnr] -= $anzahl;
            return true;
        } else {
            return false;
        }
    }
}
?>

In diesem Beispiel wird eine Klasse "Einkaufswagen" definiert. Sie besteht aus einem assoziativen Array von Produkten im Einkaufswagen und zwei Funktionen zum Zufügen und Entfernen von Einkäufen.

Klassen sind Typen, dass heisst die Blaupausen für realle Variablen. Um sie zu nutzen, muß zunächst eine Variable mit dem Operator new angelegt werden.

$einkaufswagen = new Einkaufswagen;
$einkaufswagen->fuege_hinzu("10", 1);

Hier wird das Objekt $einkaufswagen aus der Klasse Einkaufswagen geschaffen. Dann wird die enthaltene Funktion fuege_hinzu() aufgerufen, um ein Produkt mit der Artikelnummer 10 in den Einkaufswagen zu tun.

Klassen können ebenfalls Erweiterungen von anderen Klassen sein. Die erweiterte, oder auch abgeleitete Klasse enthält alle Funktionen der ursprünglichen Klasse, und dazu die eigenen Ergänzungen. Das geschieht mit dem Schlüsselwort "extends". Mehrfachvererbung wird von PHP nicht unterstützt.

class Mein_Einkaufswagen extends Einkaufswagen {
    var $besitzer;

    function setze_besitzer ($name) {
        $this->besitzer = $name;
    }
}

In diesem Beispiel wird eine Klasse Mein_Einkaufswagen definiert. Sie enthält alle Funktionen der Klasse Einkaufswagen, eine zusätzliche Variable $besitzer und die zusätzliche Funktion setze_besitzer(). Man kann den Einkaufswagen auch weiterhin wie oben erzeugen, nur kann man jetzt auch den Besitzer setzen oder herausfinden. Die alten Funktionen der Klasse Einkaufswagen können ebenfalls weiterverwendet werden.

$meinkaufswagen = new Mein_Einkaufswagen; // Kreiere einen Einkaufswagen
$meinkaufswagen->setze_besitzer ("kris"); // Name dieser Klasse
print $meinkaufswagen->besitzer;          // schreibe den Namen des Besitzers
$meinkaufswagen->fuege_hinzu ("10", 1);   // (Siehe oben, vererbt
                                          // von Einkaufswagen)

Innerhalb der Funktionen einer Klasse bezeichnet die Variable $this das aktuelle Objekt. Sie können mit $this->irgendwas auf dessen Variablen und Funktionen zugreifen.

Konstruktoren sind Funktionen eine Klasse, die beim Erschaffen eines neuen Objektes automatisch aufgerufen werden. Eine Funktion wird zu einem Konstruktor, wenn Sie den gleichen Namen wie die Klasse trägt.

class Auto_Einkaufswagen extends Einkaufswagen {
    function Auto_Einkaufswagen () {
        $this->fuege_hinzu ("10", 1);
    }
}

Die Klasse Auto_Einkaufswagen entspricht der Klasse Einkaufswagen plus einen Konstruktor, der bereits für eine erste Füllung (1 Artikel der Nummer 10) gesorgt hat. Jeder neu erzeugte Auto_Einkaufswagen enthält so von vorneherein diesen Artikel. Konstruktoren können auch Parameter enthalten. Aber diese Parameter sind optional, und können so nützlicher eingesetzt werden.

class Konstruktor_Einkaufswagen extends Einkaufswagen {
    function Konstruktor_Einkaufswagen ($produkt = "10", $anzahl = 1) {
        $this->fuege_hinzu ($produkt, $anzahl);
    }
}

// Kaufe wieder den gleichen alten Kram ein.

$standard_einkaufswagen   = new Konstruktor_Einkaufswagen;

// Kaufe etwas bestimmtes ein ...

$anderer_Einkaufswagen = new Konstruktor_Einkaufswagen ("20", 17);

Achtung

Bei abgeleiteten Klassen wird der Konstruktor der Ursprungsklasse nicht automatisch aufgerufen, wenn der Konstruktor der abgeleiteten Klasse aufgerufen wird.

Zurück | Anfang | Vor
Variablenfunktionen | Hoch | Referenzen in PHP


Referenzen in PHP

PHP Handbuch
Zurück Vor

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 | Anfang | Vor
Klassen und Objekte | Hoch | 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.

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 | Anfang | Vor
Referenzen in PHP | Hoch | 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 | Anfang | Vor
Was Referenzen leisten | Hoch | 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 | Anfang | Vor
Was Referenzen nicht sind | Hoch | 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 | Anfang | Vor
Referenzen zurückgeben | Hoch | 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 | Anfang | Vor
Referenzen aufheben | Hoch | Features


Features

PHP Handbuch
Zurück Vor

III. Features

Inhaltsverzeichnis
15. Fehlerbehandlung
16. Erzeugen und Verändern von Bildern
17. HTTP-Authentifizierung mit PHP
18. Cookies
19. Steuerung von Dateiuploads
20. Using remote files
21. Verbindungssteuerung
22. Persistente Datenbankverbindungen
Zurück | Anfang | Vor
Referenzen entdecken |  | Fehlerbehandlung


Fehlerbehandlung

PHP Handbuch
Zurück Vor

Kapitel 15. Fehlerbehandlung

Es gibt 4 verschiedene Arten von Fehlermeldungen und Warnungen in PHP. Das sind:

  • 1 - Normale Funktionsfehler

  • 2 - Normale Warnungen

  • 4 - Parser-Fehler

  • 8 - Mitteilungen (Warnungen, die ignoriert werden können, die aber eventuell auf einen Fehler im Code schließen lassen.)

Die oben aufgeführten Fehlernummern werden addiert, um den Fehlerlevel festzulegen. Der standardmäßige Wert ist 7, d.h. 1 + 2 + 4 oder, anders ausgedrückt, es werden alle Fehlermeldungen außer den Mitteilungen ausgegeben. Der Fehlerlevel kann in der Konfigurationsdatei php3.ini durch die Option error_reporting gesetzt werden. Es ist auch möglich, den Fehlerlevel in der Apache-Konfigurationsdatei httpd.conf durch die Option php3_error_reporting oder zur Laufzeit durch ein Skript, das die Funktion error_reporting() nutzt, zu setzen.

Alle PHP-Funktionen können auch mit vorangestelltem "@" aufgerufen werden. Das bewirkt das Unterdrücken der Fehlermeldung für die Funktion. Bei auftretendem Fehler und eingeschalteter track_errors Option wird die entsprechende Fehlermeldung in der globalen Variablen $php_errormsg gespeichert.

Zurück | Anfang | Vor
Features | Hoch | Erzeugen und Verändern von Bildern


Erzeugen und Verändern von Bildern

PHP Handbuch
Zurück Vor

Kapitel 16. Erzeugen und Verändern von Bildern

PHP ist nicht darauf beschränkt, nur HTML auszugeben. Es kann auch dazu genutzt werden, Bilddateien in einer Vielzahl verschiedener Formate, darunter GIF, PNG, JPEG, WBMP und XPM, zu erzeugen und zu verändern. Noch angenehmer ist, dass PHP Bilddaten direkt an einen Browser ausgeben kann. Um all das zu tun, müssen sie nur die GD-Library mit Bildfunktionen eincompilieren. Es kann sein, daß PHP und GD noch weitere Bibliotheken benötigen, je nachdem, mit welchen Bildformaten Sie arbeiten möchten.

Beispiel 16-1. GIF-Erzeugung mit PHP

<?php
    Header("Content-type: image/gif");
    $string=implode($argv," ");
    $im = imagecreatefromgif("images/taste1.gif");
    $orange = ImageColorAllocate($im, 220, 210, 60);
    $px = (imagesx($im)-7.5*strlen($string))/2;
    ImageString($im,3,$px,9,$string,$orange);
    ImageGif($im);
    ImageDestroy($im);
?>
Dieses Beispiel würde von einer Seite mit einem Tag wie diesem aufgerufen: <img src="taste.php3?text">. Der obige Skript taste.php nimmt dann den String "text" und legt ihn über das Grundbild, in diesem Fall "images/taste1.gif", und gibt das endgültige Bild aus. Das ist ein wirklich komfortabler Weg zu vermeiden, dass man jedesmal, wenn man den Text auf Tasten ändert, diese von Hand neu zeichnen muss, denn sie werden dynamisch generiert.

Zurück | Anfang | Vor
Fehlerbehandlung | Hoch | HTTP-Authentifizierung mit PHP


HTTP-Authentifizierung mit PHP

PHP Handbuch
Zurück Vor

Kapitel 17. 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.

Ein Auszug aus einem Skript, das die Clientauthentifizierung auf einer Seite erzwingt, würde so aussehen:

Beispiel 17-1. HTTP-Authentifizierung

<?php
  if(!isset($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 $PHP_AUTH_USER.<P>";
    echo "You entered $PHP_AUTH_PW as your password.<P>";
  }
?>

Anstatt $PHP_AUTH_USER und $PHP_AUTH_PW einfach nur auszugeben, werden Sie den Bunutzernamen 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, daß 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 $REMOTE_USER Variable benutzt werden, um den Benutzer durch die externe Zugriffskontrolle zu identifizieren.

Zu beachten ist, daß 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. Einige nutzen dies, um Logins nach Ablauf einer bestimmten Zeitspanne auslaufen zu lassen oder einen Logout-Button zur Verfügung zu stellen.

Beispiel 17-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($PHP_AUTH_USER)  ||  ($SeenBefore ==  1  &&  !strcmp($OldAuth,  $PHP_AUTH_USER))  )  {
    authenticate();
  }
  else  {
    echo  "Welcome:  $PHP_AUTH_USER<BR>";
    echo  "Old:  $OldAuth";
    echo  "<FORM  ACTION=\"$PHP_SELF\"  METHOD=POST>\n";
    echo  "<INPUT  TYPE=HIDDEN  NAME=\"SeenBefore\"  VALUE=\"1\">\n";
    echo  "<INPUT  TYPE=HIDDEN  NAME=\"OldAuth\"  VALUE=\"$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, daß 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, daß dies unter dem Microsoft IIS mit der CGI-Version von PHP aufgrund einer Einschränkung des IIS nicht funktioniert.

Zurück | Anfang | Vor
Erzeugen und Verändern von Bildern | Hoch | Cookies


Cookies

PHP Handbuch
Zurück Vor

Kapitel 18. 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, daß die Funktion setcookie() aufgerufen werden muß, bevor irgendeine Ausgabe an den Browser erfolgt. Dies ist die gleiche Einschränkung, der auch die Funktion header() unterliegt.

Vom Client gesendete Cookies werden automatisch in eine Variable geschrieben, wie auch bei GET oder POST. Sollen einem Cookie mehrere Werte zugewiesen werden, muss dem Cookienamen lediglich [] angefügt werden. Einzelheiten siehe Funktion setcookie().

Zurück | Anfang | Vor
HTTP-Authentifizierung mit PHP | Hoch | Steuerung von Dateiuploads


Steuerung von Dateiuploads

PHP Handbuch
Zurück Vor

Kapitel 19. Steuerung von Dateiuploads

Inhaltsverzeichnis
Dateiuploads mit POST
Häufige Probleme
Mehrere Dateien uploaden
PUT-Unterstützung

Dateiuploads mit POST

PHP kann Dateiuploads mit jedem RFC-1867 konformen Browser (dazu gehören der Natscape Navigator 3 oder höher, Microsoft Internet Explorer 3 mit 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.

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 Dateiuplod kann erstellt werden, indem man ein Formular entwirft, was ungefähr so aussieht:

Beispiel 19-1. Formular für den Dateiupload

<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
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 muß dem Dateieingabefeld vorausgehen und den Wert der maximal akzeptierten Dateigrösse in Bytes enthalten. Bei erfolgreichem Upload des Files werden folgende Variablen definiert:

  • $userfile - Der temporäre Name, unter dem die hochgeladene Datei auf demServer gespeichert wurde.

  • $userfile_name - Der ursprüngliche Dateiname auf dem System des Absenders.

  • $userfile_size - Größe der hochgeladenen Datei in Bytes.

  • $userfile_type - Der Mime-Typ der Datei, wenn dies Information zur Verfügung gestellt wird. Ein Beispiel wäre "image/gif".

Die Variable "$userfile" trägt den Namen des Dateifeldes im Formular; im obigen Beispiel haben wir die Bezeichnung "userfile" gewählt.

Standardmäßig werden Dateien in dem vorgegebenen temporären Verzeichnis des Servers gespeichert. Dies kann durch das Setzen der Umgebungsvariablen TMPDIR direkt in der Umgebung, in der PHP ausgeführt wird, geändert werden. Ein Setzen des temporären Verzeichnisses durch die Funktion putenv() innerhalb eines Skriptes ist nicht möglich.

Das PHP-Skript, dem die hochzuladende Datei übergeben wird, sollte alle nötigen Anweisungen enthalten, die festlegen, wie mit der hochgeladenen Datei verfahren werden soll. Beispielsweise kann die $file_size - Variable verwendet werden, um Dateien auszusortieren, die zu gross oder zu klein sind. Oder man benutzt die $file_type - Variable, um sich aller Dateien zu entledigen, die nicht bestimmten Typen entsprechen. Auf jeden Fall sollte die hochgeladene Datei aus dem temporären Verzeichnis gelöscht oder an andere Stelle verschoben werden.

Die Datei wird aus dem temporären Verzeichnis gelöscht, sobald das Skript abgearbeitet ist, wenn sie nicht verschoben oder umbenannt wurde.

Zurück | Anfang | Vor
Cookies | Hoch | Häufige Probleme


Häufige Probleme

Der mit MAX_FILE_SIZE eingestellte Wert kann nicht grösser sein als der durch die Zeile upload_max_filesize der PHP3.ini (oder der entsprechenden Zeile php3_upload_max_filesize in der Apache Konfigurationsdatei) festgelegte. Standardmäßig sind dies 2 MB.

Bitte beachten, daß der CERN httpd alles abschneidet, was auf das erste Leerzeichen im content-type Mime-Header folgt, den er vom Client erhält. Solange dies der Fall ist, unterstützt der CERN httpd keine Dateiuploads.

Zurück | Anfang | Vor
Steuerung von Dateiuploads | Hoch | Mehrere Dateien uploaden


Mehrere Dateien uploaden

Es ist möglich, gleichzeitig mehrere Dateien hochzuladen und die Upload-Informationen automatisch in Arrays aufgeführt zu erhalten. Dabei muß im HTML-Formular die gleiche Syntax zum Übermitteln des Arrays benutzt werden, was man durch verschiedene Select- und Checkboxen erreicht.

Anmerkung: Die Unterstützung für den Upload mehrerer Dateien wurde in Version 3.0.10 hinzugefügt.

Beispiel 19-2. Formular zum Upload mehrerer Dateien

<form action="file-upload.html" 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 abgeschickt wird, werden die Arrays $userfile,$userfile_name und $userfile_size für den globalen Bereich, wie in $HTTP_POST_VARS, angeordnet. Jede dieser Variablen ist ein numerisch indizierte Array, das aus den entsprechenden Werten der übertragenen Dateien besteht.

Nehmen wir an, die Dateinamen /home/test/review.html und /home/test/xwp.out werden übertragen. In diesem Fall beinhaltet$userfile_name[0] den Wert review.html und $userfile_name[1] enthält den Wert xwp.out. Genauso enthält $userfile_size[0] die Dateigröße von review.html, und so weiter.

Zurück | Anfang | Vor
Häufige Probleme | Hoch | PUT-Unterstützung


PUT-Unterstützung

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, daß 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 - Direktrive festgelegt. Sie kann irgendwo in der Apache-Konfigurationsdatei plaziert werden, gebräuchlich ist die Plazierung innerhalb einer <Directory>- oder <Virtualhost>- Sektion. Eine Zeile wie die folgende erledigt dies:

Script PUT /put.php3

Diese Zeile legt fest, daß Apache alle PUT-Anfragen für URIs, die dem Kontext entsprechen, in dem diese Zeile steht, an das put.php3 Skript weiterleitet. Dies setzt voraus, daß PHP aktiv und für die .php3-Dateierweiterung registriert ist.

Innerhalb der put.php3-Datei könnte folgendes stehen:

<? 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 in einem temporären Verzeichnis gespeichert, genau wie bei POST-Methode Nach Abarbeiten der Anfrage wird die temporäre Datei gelöscht. Also muß 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 | Anfang | Vor
Mehrere Dateien uploaden | Hoch | Using remote files


Using remote files

PHP Handbuch
Zurück Vor

Kapitel 20. Using remote files

As long as support for the "URL fopen wrapper" is enabled when you configure PHP (which it is unless you explicitly pass the --disable-url-fopen-wrapper flag to configure (for versions up to 4.0.3) or set allow_url_fopen to off in php.ini (for newer versions), you can use HTTP and FTP URLs with most functions that take a filename as a parameter, including the require() and include() statements.

Anmerkung: You can't use remote files in include() and require() statements on Windows.

For example, you can use this to open a file on a remote web server, parse the output for the data you want, and then use that data in a database query, or simply to output it in a style matching the rest of your website.

Beispiel 20-1. Getting the title of a remote page

<?php
$file = fopen ("http://www.php.net/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

You can also write to files on an FTP as long you connect as a user with the correct access rights, and the file doesn't exist already. To connect as a user other than 'anonymous', you need to specify the username (and possibly password) within the URL, such as 'ftp://user:password@ftp.example.com/path/to/file'. (You can use the same sort of syntax to access files via HTTP when they require Basic authentication.)

Beispiel 20-2. Storing data on a remote server

<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>

Anmerkung: You might get the idea from the example above to use this technique to write to a remote log, but as mentioned above, you can only write to a new file using the URL fopen() wrappers. To do distributed logging like that, you should take a look at syslog().

Zurück | Anfang | Vor
PUT-Unterstützung | Hoch | Verbindungssteuerung


Verbindungssteuerung

PHP Handbuch
Zurück Vor

Kapitel 21. 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, daß 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, daß 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, daß 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 | Anfang | Vor
Using remote files | Hoch | Persistente Datenbankverbindungen


Persistente Datenbankverbindungen

PHP Handbuch
Zurück Vor

Kapitel 22. 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.

Wer nicht durchgängig mit der Art und Weise, wie Webserver arbeiten und die Last verteilen, vertraut ist, könnte missverstehen, wofür persistente Verbindungen gedacht sind. Im Besonderen bieten sie keine Möglichkeit, 'Benutzersitzungen' auf der gleichen SQL-Verbindung zu öffnen und keine Möglichkeit, eine Transaktion aufzubauen, und sie können viele andere Sachen nicht. Um absulute 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 anschliessend 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ärere 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, die die eigentliche Arbeit des Bereitstellens der Seiten übenehmen. Jede Anfrage, die von einen Client erfolgt, wird an einen untergeordneten Prozess, der noch keine andere Anfrage bearbeitet, weitergereicht. Das bedeutet, dass eine zweite Anfrage des 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. Momentan ist dies noch Theorie - PHP arbeitet noch nicht als Plug-in für irgedeinen dieser Server. An der Unterstützung für ISAPI, WSAPI und NSAPI wird gearbeitet, so dass die Nutzung von PHP mit Multithread-Serven wie Netscape Fast Track, Microsoft Internet Information Server (IIS) und O'Reilly's WebSite Pro möglich wird. Wenn es soweit ist, wird das Verhalten im wesentlichen dem oben beschriebenen Multiprozess-Modell entsprechen.

Wozu dienen persistente Verbindungen, wenn sie keine zusätzliche Funktionalität bieten?

Die Antwort ist ausserordentlich einfach: Effizienz. Persistente Verbindungen sind nützlich, wenn die Notwendigkeit, eine Verbindung zu einem SQL-Server herzustellen, hoch ist. Ob dies der Fall ist oder nicht, hängt von vielen Faktoren ab - zum Beispiel, um was für eine 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 ausserordentlich hilfreich sind. Sie veranlassen den untergeordneten Prozess, sich während seiner gesamten Lebensdauer lediglich einmal mit dem SQL-Server zu verbinden, anstatt jedesmal beim Aufruf einer Seite, die eine Verbindung benötigt. Das heisst, dass jeder untergeordneten Prozess, der eine persistente Verbindung öffnet, eine eigene dauerhafte Verbindung zum Server hat. Bei 20 untergeordnete 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.

Eine wichtige Zusammenfassung. Persistente Verbindungen wurden entwickelt, um eins-zu-eins Abbildungen auf reguläre Verbindungen zu haben. Das heisst, 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.

Zurück | Anfang | Vor
Verbindungssteuerung | Hoch | Funktionsreferenz


Funktionsreferenz

PHP Handbuch
Zurück Vor

IV. Funktionsreferenz

Inhaltsverzeichnis
I. Apache-spezifische Funktionen
II. Array Funktionen
III. Aspell Funktionen
IV. Mathematische Funktionen mit beliebiger Genauigkeit
V. Bzip2 Compression Functions
VI. Kalender-Funktionen
VII. CCVS API Functions
VIII. COM Support Funktionen für Windows
IX. Klassen- und Objekt-Funktionen
X. ClibPDF Funktionen
XI. CURL, Client URL Library Functions
XII. Cybercash Bezahl Funktionen
XIII. Character type functions
XIV. Datenbank (dbm-style) Abstraktions Funktionen
XV. Datums- und Zeit-Funktionen
XVI. dBase Funktionen
XVII. DBM Datenbankfunktionen
XVIII. Verzeichnis-Funktionen
XIX. DOM XML Funktionen
XX. Error Handling and Logging Functions
XXI. filePro Funktionen
XXII. Funktionen des Dateisystems
XXIII. Forms Data Format functions
XXIV. FTP-Funktionen
XXV. Function Handling functions
XXVI. GNU Gettext
XXVII. GMP functions
XXVIII. HTTP-Funktionen
XXIX. Hyperwave functions
XXX. ICAP Functions
XXXI. Grafik-Funktionen
XXXII. IMAP, POP3 und NNTP Funktionen
XXXIII. Informix functions
XXXIV. InterBase-Funktionen
XXXV. Ingres II functions
XXXVI. LDAP functions
XXXVII. Mail Funktionen
XXXVIII. Mathematische Funktionen
XXXIX. MCAL Funktionen
XL. Mcrypt Encryption Functions
XLI. Hash Funktionen
XLII. Microsoft SQL Server Funktionen
XLIII. Ming functions for Flash
XLIV. Sonstige Funktionen
XLV. mnoGoSearch Functions
XLVI. mSQL functions
XLVII. MySQL Funktionen
XLVIII. Netzwerk Funktionen
XLIX. ODBC Funktionen
L. Oracle 8 functions
LI. OpenSSL functions
LII. Oracle Funktionen
LIII. Ovrimos SQL functions
LIV. Output Control Functions
LV. PDF Funktionen
LVI. Verisign Payflow Pro functions
LVII. PHP Optionen und Informationen
LVIII. POSIX Funktionen
LIX. PostgreSQL Funktionen
LX. Program Execution functions
LXI. Pspell Functions
LXII. GNU Readline
LXIII. GNU Recode functions
LXIV. Regular Expression Functions (Perl-Compatible)
LXV. Reguläre Ausdrücke Funktionen (POSIX erweitert)
LXVI. Satellite CORBA client extension
LXVII. Semaphor und Shared Memory Funktionen
LXVIII. SESAM Datenbankfunktionen
LXIX. Session Funktionen
LXX. Shared Memory Functions
LXXI. Shockwave Flash functions
LXXII. SNMP functions
LXXIII. Socket functions
LXXIV. String-Funktionen
LXXV. Sybase functions
LXXVI. URL functions
LXXVII. Variablen-Funktionen
LXXVIII. WDDX functions
LXXIX. XML parser functions
LXXX. XSLT functions
LXXXI. YAZ functions
LXXXII. YP/NIS Functions
LXXXIII. Zlib Compression Functions
Zurück | Anfang | Vor
Persistente Datenbankverbindungen |  | Apache-spezifische Funktionen


Apache-spezifische Funktionen

PHP Handbuch
Zurück Vor

I. Apache-spezifische Funktionen

Inhaltsverzeichnis
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
getallheaders — Liefert alle HTTP-Header der aktuellen Anfrage aus
virtual — Führt eine Apache-Unteranfrage durch
ascii2ebcdic — Zeichenkette von ASCII in EBCDIC übersetzen
ebcdic2ascii — Zeichenkette von EBCDIC in ASCII übersetzen
Zurück | Anfang | Vor
Funktionsreferenz | Hoch | apache_lookup_uri


apache_lookup_uri

(PHP 3>= 3.0.4, PHP 4 )

apache_lookup_uri -- Führt eine Teilanfrage für eine URI durch und liefert alle Informationen darüber zurück

Description

class apache_lookup_uri (string filename)

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

Anmerkung: Apache_lookup_uri() existiert nur, wenn PHP als Apache-Modul eingerichtet wurde.

Zurück | Anfang | Vor
Apache-spezifische Funktionen | Hoch | apache_note


apache_note

(PHP 3>= 3.0.2, PHP 4 )

apache_note -- Setzt und liest Apache Notes

Description

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 | Anfang | Vor
apache_lookup_uri | Hoch | getallheaders


getallheaders

(PHP 3, PHP 4 )

getallheaders -- Liefert alle HTTP-Header der aktuellen Anfrage aus

Description

array getallheaders(void);

Diese Funktion liefert ein assoziatives Array zurück, das alle HTTP-Header-Informationen der aktuellen HTTP-Anfrage enthält.

Anmerkung: Die Werte der normalen CGI-Variablen können Sie auch durch das Auslesen der Umgebungsvariablen erhalten. Dieser Weg funktioniert unabhängig vom Apache. Probieren Sie phpinfo() aus, um alle Umgebungsvariablen, die auf diese Weise erreichbar sind, zu erhalten.

Beispiel 1. Getallheaders() Example

$headers= getallheaders();
while (list ($header, $value) = each ($headers)) {
    echo "$header: $value<br>\n";
}
Dieses Beispiel gibt alle HTTP-Header der aktuellen Anfrage aus.

Anmerkung: Getallheaders() wird zur Zeit nur durch PHP als Apachemodul unterstützt.

Zurück | Anfang | Vor
apache_note | Hoch | virtual


virtual

(PHP 3, PHP 4 )

virtual -- Führt eine Apache-Unteranfrage durch

Description

int virtual (string filename)

Virtual() ist eine Apache-spezifische Funktion, die <!--#include virtual... --> aus mod_include entspricht. Sie führt eine Unteranfrage durch, die für das Einbinden von CGI-Skripten, .shtml-Dateien oder anderes, das vom Apache verarbeitet werden soll, nützlich ist. Beachten Sie bitte, dass ein CGI-Skript mindestens einen gültigen CGI-Header generieren muß, mindestens einen Content-type-Header. Für PHP-Dateien müssen Sie include() oder require() benutzen, virtual() kann selbst keine PHP-Dokumente einbinden.

Zurück | Anfang | Vor
getallheaders | Hoch | ascii2ebcdic


ascii2ebcdic

(PHP 3>= 3.0.17)

ascii2ebcdic -- Zeichenkette von ASCII in EBCDIC übersetzen

Description

int ascii2ebcdic (string ascii_str)

ascii2ebcdic() ist eine Apache-specifische 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 | Anfang | Vor
virtual | Hoch | ebcdic2ascii


ebcdic2ascii

(PHP 3>= 3.0.17)

ebcdic2ascii -- Zeichenkette von EBCDIC in ASCII übersetzen

Description

int ebcdic2ascii (string ebcdic_str)

ebcdic2ascii() ist eine Apache-specifische 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 | Anfang | Vor
ascii2ebcdic | Hoch | Array Funktionen


Array Funktionen

PHP Handbuch
Zurück Vor

II. Array Funktionen

Inhaltsverzeichnis
array — Einen Array erstellen
array_count_values — Counts all the values of an array
array_flip — Flip all the values of an array
array_keys — Return all the keys of an array
array_merge — Merge two or more arrays
array_merge_recursive — Merge two or more arrays recursively
array_multisort — Sort multiple or multi-dimensional arrays
array_pad — Pad array to the specified length with a value
array_pop — Pop the element off the end of array
array_push — Push one or more elements onto the end of array
array_rand — Pick one or more random entries out of an array
array_reverse — Return an array with elements in reverse order
array_shift — Pop an element off the beginning of array
array_slice — Extract a slice of the array
array_splice — Remove a portion of the array and replace it with something else
array_unshift — Push one or more elements onto the beginning of array
array_values — Return all the values of an array
array_walk — Apply a user function to every member of an array.
arsort — Sort an array in reverse order and maintain index association
asort — Sort an array and maintain index association
compact — Create array containing variables and their values
count — count elements in a variable
current — Return the current element in an array
each — Return the next key and value pair from an array
end — Set the internal pointer of an array to its last element
extract — Import variables into the symbol table from an array
in_array — Return true if a value exists in an array
key — Fetch a key from an associative array
krsort — Sort an array by key in reverse order
ksort — Sort an array by key
list — Assign variables as if they were an array
next — Advance the internal array pointer of an array
pos — Get the current element from an array
prev — Rewind the internal array pointer
range — Create an array containing a range of integers
reset — Set the internal pointer of an array to its first element
rsort — Sort an array in reverse order
shuffle — Shuffle an array
sizeof — Get the number of elements in an array
sort — Sort an array
uasort — Sort an array with a user-defined comparison function and maintain index association
uksort — Sort an array by keys using a user-defined comparison function
usort — Sort an array by values using a user-defined comparison function
Zurück | Anfang | Vor
ebcdic2ascii | Hoch | array


array

(unknown)

array -- Einen Array erstellen

Beschreibung

array array(...);

Gibt einen Array von Parametern zurück. Mit dem => Operator können diese Parameter indiziert werden.

Anmerkung: array() ist ein Sprachkonstrukt, das benutzt wird um ein buchstäbliches Wertfeld zu erzeugen, und nicht eine reguläre Funktion.

Das folgende Beispiel zeigt, wie man einen zwei-dimensionalen Array erzeugt, wie man Schlüssel für assoziative Arrays festlegt und wie man in normalen Arrays numerische Indizes überspringt und fortsetzt.

Beispiel 1. array()-Beispiel

$fruits = array(
    "fruechte"  => array("a"=>"orange","b"=>"banane","c"=>"apfel"),
    "zahlen" => array(1, 2, 3, 4, 5, 6),
    "luecken"   => array("erstes", 5 => "zweites", "drittes")
);

See also: list().

Zurück | Anfang | Vor
Array Funktionen | Hoch | array_count_values


array_count_values

(PHP 4 >= 4.0b4)

array_count_values -- Counts all the values of an array

Description

array array_count_values (array input)

array_count_values() returns an array using the values of the input array as keys and their frequency in input as values.

Beispiel 1. array_count_values() example

$array = array(1,"hello",1,"world","hello");
array_count_values($array);       // returns array(1=>2, "hello"=>2, "world"=>1)

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array | Hoch | array_flip


array_flip

(PHP 4 >= 4.0b4)

array_flip -- Flip all the values of an array

Description

array array_flip (array trans)

array_flip() returns an array in flip order.

Beispiel 1. array_flip() example

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_count_values | Hoch | array_keys


array_keys

(PHP 4 )

array_keys -- Return all the keys of an array

Description

array array_keys (array input [, mixed search_value])

array_keys() returns the keys, numeric and string, from the input array.

If the optional search_value is specified, then only the keys for that value are returned. Otherwise, all the keys from the input are returned.

Beispiel 1. array_keys() example

$array = array(0 => 100, "color" => "red");
array_keys($array);       // returns array(0, "color")

$array = array(1, 100, 2, 100);
array_keys($array, 100); //  returns array(0, 2)

See also array_values().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_flip | Hoch | array_merge


array_merge

(PHP 4 )

array_merge -- Merge two or more arrays

Description

array array_merge (array array1, array array2 [, ...])

array_merge() merges the elements of two or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.

If the input arrays had the same string keys, then the later value for that key will overwrite previous one. If, however, the arrays have the same numeric key, this does not happen since the values are appended.

Beispiel 1. array_merge() example

$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid");
array_merge($array1, $array2);

Resulting array will be array("color" => "green", 2, 4, "a", "b", "shape" => "trapezoid").

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_keys | Hoch | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1)

array_merge_recursive -- Merge two or more arrays recursively

Description

array array_merge_recursive (array array1, array array2 [, ...])

array_merge_recursive() merges the elements of two or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.

If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. If, however, the arrays have the same numeric key, the later value will not overwrite the original value, but will be appended.

Beispiel 1. array_merge_recursive() example

$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);

Resulting array will be array("color" => array("favorite" => array("red", "green"), "blue"), 5, 10).

See also array_merge().

Zurück | Anfang | Vor
array_merge | Hoch | array_multisort


array_multisort

(PHP 4 >= 4.0b4)

array_multisort -- Sort multiple or multi-dimensional arrays

Description

bool array_multisort (array ar1 [, mixed arg [, ...]])

array_multisort() can be used to sort several arrays at once or a multi-dimensional array according by one of more dimensions. It maintains key association when sorting.

The input arrays are treated as columns of a table to be sorted by rows - this resembles the functionality of SQL ORDER BY clause. The first array is the primary one to sort by. The rows (values) in that array that compare the same are sorted by the next input array, and so on.

The argument structure of this function is a bit unusual, but flexible. The very first argument has to be an array. Subsequently, each argument can be either an array or a sorting flag from the following lists.

Sorting order flags:

  • SORT_ASC - sort in ascending order

  • SORT_DESC - sort in descending order

Sorting type flags:

  • SORT_REGULAR - compare items normally

  • SORT_NUMERIC - compare items numerically

  • SORT_STRING - compare items as strings

No two sorting flags of the same type can be specified after each array. The sortings flags specified after an array argument apply only to that array - they are reset to default SORT_ASC and SORT_REGULAR after before each new array argument.

Returns true on success, false on failure.

Beispiel 1. Sorting multiple arrays

$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

In this example, after sorting, the first array will contain 10, "a", 100, 100. The second array will contain 1, 1, 2, "3". The entries in the second array corresponding to the identical entries in the first array (100 and 100) were sorted as well.

Beispiel 2. Sorting multi-dimensional array

$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 this example, after sorting, the first array will contain 10, 100, 100, "a" (it was sorted as strings in ascending order), and the second one will contain 1, 3, "2", 1 (sorted as numbers, in descending order).

Zurück | Anfang | Vor
array_merge_recursive | Hoch | array_pad


array_pad

(PHP 4 >= 4.0b4)

array_pad -- Pad array to the specified length with a value

Description

array array_pad (array input, int pad_size, mixed pad_value)

array_pad() returns a copy of the input padded to size specified by pad_size with value pad_value. If pad_size is positive then the array is padded on the right, if it's negative then on the left. If the absolute value of pad_size is less than or equal to the length of the input then no padding takes place.

Beispiel 1. array_pad() example

$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// not padded

Zurück | Anfang | Vor
array_multisort | Hoch | array_pop


array_pop

(PHP 4 )

array_pop -- Pop the element off the end of array

Description

mixed array_pop (array array)

array_pop() pops and returns the last value of the array, shortening the array by one element.

Beispiel 1. array_pop() example

$stack = array("orange", "apple", "raspberry");
$fruit = array_pop($stack);

After this, $stack has only 2 elements: "orange" and "apple", and $fruit has "raspberry".

See also array_push(),
array_shift(), and
array_unshift().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_pad | Hoch | array_push


array_push

(PHP 4 )

array_push -- Push one or more elements onto the end of array

Description

int array_push (array array, mixed var [, ...])

array_push() treats array as a stack, and pushes the passed variables onto the end of array. The length of array increases by the number of variables pushed. Has the same effect as:

$array[] = $var;
repeated for each var.

Returns the new number of elements in the array.

Beispiel 1. array_push() example

$stack = array(1, 2);
array_push($stack, "+", 3);
This example would result in $stack having 4 elements: 1, 2, "+", and 3.

See also:
array_pop(),
array_shift(), and
array_unshift().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_pop | Hoch | array_rand


array_rand

(PHP 4 >= 4.0.0)

array_rand -- Pick one or more random entries out of an array

Description

mixed array_rand (array input [, int num_req])

array_rand() is rather useful when you want to pick one or more random entries out of an array. It takes an input array and an optional argument num_req which specifies how many entries you want to pick - if not specified, it defaults to 1.

If you are picking only one entry, array_rand() returns the key for a random entry. Otherwise, it returns an array of keys for the random entries. This is done so that you can pick random keys as well as values out of the array.

Don't forget to call srand() to seed the random number generator.

Beispiel 1. array_rand() example

srand((double)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 | Anfang | Vor
array_push | Hoch | array_reverse


array_reverse

(PHP 4 >= 4.0b4)

array_reverse -- Return an array with elements in reverse order

Description

array array_reverse (array array)

array_reverse() takes input array and returns a new array with the order of the elements reversed.

Beispiel 1. array_reverse() example

$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
This makes $result have array(array("green", "red"), 4.0, "php").

Anmerkung: This function was added in PHP 4.0 Beta 3.

Zurück | Anfang | Vor
array_rand | Hoch | array_shift


array_shift

(PHP 4 )

array_shift -- Pop an element off the beginning of array

Description

mixed array_shift (array array)

array_shift() shifts the first value of the array off and returns it, shortening the array by one element and moving everything down.

Beispiel 1. array_shift() example

$args = array("-v", "-f");
$opt = array_shift($args);
This would result in $args having one element "-f" left, and $opt being "-v".

See also array_unshift(),
array_push(), and
array_pop().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_reverse | Hoch | array_slice


array_slice

(PHP 4 )

array_slice -- Extract a slice of the array

Description

array array_slice (array array, int offset [, int length])

array_slice() returns a sequence of elements from the array specified by the offset and length parameters.

If offset is positive, the sequence will start at that offset in the array. If offset is negative, the sequence will start that far from the end of the array.

If length is given and is positive, then the sequence will have that many elements in it. If length is given and is negative then the sequence will stop that many elements from the end of the array. If it is omitted, then the sequence will have everything from offset up until the end of the array.

Beispiel 1. array_slice() examples

$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // returns "c", "d", and "e"
$output = array_slice($input, 2, -1);  // returns "c", "d"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

See also array_splice().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_shift | Hoch | array_splice


array_splice

(PHP 4 )

array_splice -- Remove a portion of the array and replace it with something else

Description

array array_splice (array input, int offset [, int length [, array replacement]])

array_splice() removed the elements designated by offset and length from the input array, and replaces them with the elements of the replacement array, if supplied.

If offset is positive then the start of removed portion is at that offset from the beginning of the input array. If offset is negative then it starts that far from the end of the input array.

If length is omitted, removes everything from offset to the end of the array. If length is specified and is positive, then that many elements will be removed. If length is specified and is negative then the end of the removed portion will be that many elements from the end of the array. Tip: to remove everything from offset to the end of the array when replacement is also specified, use count($input) for length.

If replacement array is specified, then the removed elements are replaced with elements from this array. If offset and length are such that nothing is removed, then the elements from the replacement array are inserted in the place specified by the offset. Tip: if the replacement is just one element it is not necessary to put array() around it, unless the element is an array itself.

The following equivalences hold:

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, 0, 1)
array_unshift($input, $x, $y)  array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y                    array_splice($input, $x, 1, $y)

Returns the array consisting of removed elements.

Beispiel 1. array_splice() examples

$input = array("red", "green", "blue", "yellow");

array_splice($input, 2);      // $input is now array("red", "green")
array_splice($input, 1, -1);  // $input is now array("red", "yellow")
array_splice($input, 1, count($input), "orange");
                              // $input is now array("red", "orange")
array_splice($input, -1, 1, array("black", "maroon"));
                              // $input is now array("red", "green",
                              //          "blue", "black", "maroon")

See also array_slice().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_slice | Hoch | array_unshift


array_unshift

(PHP 4 )

array_unshift -- Push one or more elements onto the beginning of array

Description

int array_unshift (array array, mixed var [, ...])

array_unshift() prepends passed elements to the front of the array. Note that the list of elements is prepended as a whole, so that the prepended elements stay in the same order.

Returns the new number of elements in the array.

Beispiel 1. array_unshift() example

$queue = array("p1", "p3");
array_unshift($queue, "p4", "p5", "p6");
This would result in $queue having 5 elements: "p4", "p5", "p6", "p1", and "p3".

See also array_shift(),
array_push(), and
array_pop().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_splice | Hoch | array_values


array_values

(PHP 4 )

array_values -- Return all the values of an array

Description

array array_values (array input)

array_values() returns all the values from the input array.

Beispiel 1. array_values() example

$array = array("size" => "XL", "color" => "gold");
array_values($array);    // returns array("XL", "gold")

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
array_unshift | Hoch | array_walk


array_walk

(PHP 3>= 3.0.3, PHP 4 )

array_walk -- Apply a user function to every member of an array.

Description

int array_walk (array arr, string func, mixed userdata)

Applies the function named by func to each element of arr. func will be passed array value as the first parameter and array key as the second parameter. If userdata is supplied, it will be passed as the third parameter to the user function. If func requires more than two or three arguments, depending on userdata, a warning will be generated each time array_walk() calls func. These warnings may be suppressed by prepending the '@' sign to the array_walk() call, or by using error_reporting().

Anmerkung: If func needs to be working with the actual values of the array, specify that the first parameter of func should be passed by reference. Then any changes made to those elements will be made in the array itself.

Anmerkung: Passing the key and userdata to func was added in 4.0.

Beispiel 1. array_walk() example

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");

function test_alter( &$item1, $key, $prefix ) {
   $item1 = "$prefix: $item1";
}

function test_print( $item2, $key ) {
   echo "$key. $item2<br>\n";
}

array_walk( $fruits, 'test_print' );
array_walk( $fruits, 'test_alter', 'fruit' );
array_walk( $fruits, 'test_print' );

See also each() and list().

Zurück | Anfang | Vor
array_values | Hoch | arsort


arsort

(PHP 3, PHP 4 )

arsort -- Sort an array in reverse order and maintain index association

Description

void arsort (array array)

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant.

Beispiel 1. arsort() example

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
arsort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[a] = orange
fruits[d] = lemon
fruits[b] = banana
fruits[c] = apple
 The fruits have been sorted in reverse alphabetical order, and the index associated with each element has been maintained.

See also: asort(), rsort(), ksort(), and sort().

Zurück | Anfang | Vor
array_walk | Hoch | asort


asort

(PHP 3, PHP 4 )

asort -- Sort an array and maintain index association

Description

void asort (array array)

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant.

Beispiel 1. asort() example

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
asort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[c] = apple
fruits[b] = banana
fruits[d] = lemon
fruits[a] = orange
 The fruits have been sorted in alphabetical order, and the index associated with each element has been maintained.

See also arsort(), rsort(), ksort(), and sort().

Zurück | Anfang | Vor
arsort | Hoch | compact


compact

(PHP 4 )

compact -- Create array containing variables and their values

Description

array compact (string varname | array varnames [, ...])

compact() takes a variable number of parameters. Each parameter can be either a string containing the name of the variable, or an array of variable names. The array can contain other arrays of variable names inside it; compact() handles it recursively.

For each of these, compact() looks for a variable with that name in the current symbol table and adds it to the output array such that the variable name becomes the key and the contents of the variable become the value for that key. In short, it does the opposite of extract(). It returns the output array with all the variables added to it.

Beispiel 1. compact() example

$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);

After this, $result will be array("event" => "SIGGRAPH", "city" => "San Francisco", "state" => "CA").

See also extract().

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
asort | Hoch | count


count

(PHP 3, PHP 4 )

count -- count elements in a variable

Description

int count (mixed var)

Returns the number of elements in var, which is typically an array (since anything else will have one element).

Returns 1 if the variable is not an array.

Returns 0 if the variable is not set.

Warnung

count() may return 0 for a variable that isn't set, but it may also return 0 for a variable that has been initialized with an empty array. Use isset() to test if a variable is set.

See also: sizeof(), isset(), and is_array().

Zurück | Anfang | Vor
compact | Hoch | current


current

(PHP 3, PHP 4 )

current -- Return the current element in an array

Description

mixed current (array array)

Every array has an internal pointer to its "current" element, which is initialized to the first element inserted into the array.

The current() function simply returns the array element that's currently being pointed by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list, current() returns false.

Warnung

If the array contains empty elements (0 or "", the empty string) then this function will return false for these elements as well. This makes it impossible to determine if you are really at the end of the list in such an array using current(). To properly traverse an array that may contain empty elements, use the each() function.

See also: end(), next(), prev() and reset().

Zurück | Anfang | Vor
count | Hoch | each


each

(PHP 3, PHP 4 )

each -- Return the next key and value pair from an array

Description

array each (array array)

Returns the current key and value pair from the array array and advances the array cursor. This pair is returned in a four-element array, with the keys 0, 1, key, and value. Elements 0 and key contain the key name of the array element, and 1 and value contain the data.

If the internal pointer for the array points past the end of the array contents, each() returns false.

Beispiel 1. each() examples

$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each( $foo );

$bar now contains the following key/value pairs:

  • 0 => 0
  • 1 => 'bob'
  • key => 0
  • value => 'bob'

$foo = array( "Robert" => "Bob", "Seppo" => "Sepi" );
$bar = each( $foo );

$bar now contains the following key/value pairs:

  • 0 => 'Robert'
  • 1 => 'Bob'
  • key => 'Robert'
  • value => 'Bob'

each() is typically used in conjunction with list() to traverse an array; for instance, $HTTP_POST_VARS:

Beispiel 2. Traversing $HTTP_POST_VARS with each()

echo "Values submitted via POST method:<br>";
while (list($key, $val) = each($HTTP_POST_VARS)) {
   echo "$key => $val<br>";
}

After each() has executed, the array cursor will be left on the next element of the array, or on the last element if it hits the end of the array.

   See also key(), list(),
current(), reset(),
next(), and prev().

Zurück | Anfang | Vor
current | Hoch | end


end

(PHP 3, PHP 4 )

end -- Set the internal pointer of an array to its last element

Description

end (array array)

end() advances array's internal pointer to the last element.

See also:
current(),
each(),
end(),
next(), and
reset().

Zurück | Anfang | Vor
each | Hoch | extract


extract

(PHP 3>= 3.0.7, PHP 4 )

extract -- Import variables into the symbol table from an array

Description

void extract (array var_array [, int extract_type [, string prefix]])

This function is used to import variables from an array into the current symbol table. It takes associative array var_array and treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to extract_type and prefix parameters.

extract() checks for colissions with existing variables. The way collisions are treated is determined by extract_type. It can be one of the following values:

EXTR_OVERWRITE

If there is a collision, overwrite the existing variable.

EXTR_SKIP

If there is a collision, don't overwrite the existing variable.

EXTR_PREFIX_SAME

If there is a collision, prefix the new variable with prefix.

EXTR_PREFIX_ALL

Prefix all variables with prefix.

If extract_type is not specified, it is assumed to be EXTR_OVERWRITE.

Note that prefix is only required if extract_type is EXTR_PREFIX_SAME or EXTR_PREFIX_ALL.

extract() checks each key to see if it constitues a valid variable name, and if it does only then does it proceed to import it.

A possible use for extract is to import into symbol table variables contained in an associative array returned by wddx_deserialize().

Beispiel 1. extract example

<?

/* Suppose that $var_array is an array returned from
   wddx_deserialize */
$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

print "$color, $size, $shape, $wddx_size\n";

?>

The above example will produce:

blue, large, sphere, medium

The $size wasn't overwritten, becaus we specified EXTR_PREFIX_SAME, which resulted in $wddx_size being created. If EXTR_SKIP was specified, then $wddx_size wouldn't even have been created. EXTR_OVERWRITE would have cause $size to have value "medium", and EXTR_PREFIX_ALL would result in new variables being named $wddx_color, $wddx_size, and $wddx_shape.

Zurück | Anfang | Vor
end | Hoch | in_array


in_array

(PHP 4 )

in_array -- Return true if a value exists in an array

Description

bool in_array (mixed needle, array haystack)

Searches haystack for needle and returns true if it is found in the array, false otherwise.

Beispiel 1. in_array() example

$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os))
       print "Got Irix";

Anmerkung: This function was added in PHP 4.0.

Zurück | Anfang | Vor
extract | Hoch | key


key

(PHP 3, PHP 4 )

key -- Fetch a key from an associative array

Description

mixed key (array array)

key() returns the index element of the current array position.

See also: current(), next()

Zurück | Anfang | Vor
in_array | Hoch | krsort


krsort

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

krsort -- Sort an array by key in reverse order

Description

int krsort (array array)

Sorts an array by key in reverse order, maintaining key to data correlations. This is useful mainly for associative arrays.

Beispiel 1. krsort() example

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
krsort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[d] = lemon
fruits[c] = apple
fruits[b] = banana
fruits[a] = orange

See also asort(), arsort(), ksort() sort(), and rsort().

Zurück | Anfang | Vor
key | Hoch | ksort


ksort

(PHP 3, PHP 4 )

ksort -- Sort an array by key

Description

int ksort (array array)

Sorts an array by key, maintaining key to data correlations. This is useful mainly for associative arrays.

Beispiel 1. ksort() example

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
ksort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[a] = orange
fruits[b] = banana
fruits[c] = apple
fruits[d] = lemon

See also asort(), arsort(), sort(), and rsort().

Zurück | Anfang | Vor
krsort | Hoch | list


list

(unknown)

list -- Assign variables as if they were an array

Description

void list(...);

Like array(), this is not really a function, but a language construct. list() is used to assign a list of variables in one operation.

Beispiel 1. list() example

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>
<?php

$result = mysql($conn, "SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    print(" <tr>\n".
          "  <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
          "  <td>$salary</td>\n".
          " </tr>\n");
}

?></table>

See also: each(), array().

Zurück | Anfang | Vor
ksort | Hoch | next


next

(PHP 3, PHP 4 )

next -- Advance the internal array pointer of an array

Description

mixed next (array array)

Returns the array element in the next place that's pointed by the internal array pointer, or false if there are no more elements.

next() behaves like current(), with one difference. It advances the internal array pointer one place forward before returning the element. That means it returns the next array element and advances the internal array pointer by one. If advancing the internal array pointer results in going beyond the end of the element list, next() returns false.

Warnung

If the array contains empty elements then this function will return false for these elements as well. To properly traverse an array which may contain empty elements see the each() function.

See also: current(), end() prev() and reset()

Zurück | Anfang | Vor
list | Hoch | pos


pos

(PHP 3, PHP 4 )

pos -- Get the current element from an array

Description

mixed pos (array array)

This is an alias for current().

See also: end(), next(), prev() and reset().

Zurück | Anfang | Vor
next | Hoch | prev


prev

(PHP 3, PHP 4 )

prev -- Rewind the internal array pointer

Description

mixed prev (array array)

Returns the array element in the previous place that's pointed by the internal array pointer, or false if there are no more elements.

Warnung

If the array contains empty elements then this function will return false for these elements as well. To properly traverse an array which may contain empty elements see the each() function.

prev() behaves just like next(), except it rewinds the internal array pointer one place instead of advancing it.

See also: current(), end() next() and reset()

Zurück | Anfang | Vor
pos | Hoch | range


range

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

range -- Create an array containing a range of integers

Description

array range (int low, int high)

range() returns an array of integers from low to high, inclusive.

See shuffle() for an example of its use.

Zurück | Anfang | Vor
prev | Hoch | reset


reset

(PHP 3, PHP 4 )

reset -- Set the internal pointer of an array to its first element

Description

mixed reset (array array)

reset() rewinds array's internal pointer to the first element.

reset() returns the value of the first array element.

See also:
current(),
each(),
next(),
prev(), and
reset().

Zurück | Anfang | Vor
range | Hoch | rsort


rsort

(PHP 3, PHP 4 )

rsort -- Sort an array in reverse order

Description

void rsort (array array)

This function sorts an array in reverse order (highest to lowest).

Beispiel 1. rsort() example

$fruits = array("lemon","orange","banana","apple");
rsort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[0] = orange
fruits[1] = lemon
fruits[2] = banana
fruits[3] = apple
 The fruits have been sorted in reverse alphabetical order.

See also:
arsort(),
asort(),
ksort(),
sort(), and
usort().

Zurück | Anfang | Vor
reset | Hoch | shuffle


shuffle

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

shuffle -- Shuffle an array

Description

void shuffle (array array)

This function shuffles (randomizes the order of the elements in) an array.

Beispiel 1. shuffle() example

$numbers = range(1,20);
srand(time());
shuffle($numbers);
while (list(,$number) = each($numbers)) {
    echo "$number ";
}

See also arsort(), asort(),
ksort(), rsort(),
sort() and usort().

Zurück | Anfang | Vor
rsort | Hoch | sizeof


sizeof

(PHP 3, PHP 4 )

sizeof -- Get the number of elements in an array

Description

int sizeof (array array)

Returns the number of elements in the array.

See also: count()

Zurück | Anfang | Vor
shuffle | Hoch | sort


sort

(PHP 3, PHP 4 )

sort -- Sort an array

Description

void sort (array array)

This function sorts an array. Elements will be arranged from lowest to highest when this function has completed.

Beispiel 1. sort() example

$fruits = array("lemon","orange","banana","apple");
sort($fruits);
reset($fruits);
while(list($key,$val)=each($fruits)) {
 echo "$key -> $val\n";
}
This example would display:
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
 The fruits have been sorted in alphabetical order.

See also:
arsort(),
asort(),
ksort(),
rsort(), and
usort().

Zurück | Anfang | Vor
sizeof | Hoch | uasort


uasort

(PHP 3>= 3.0.4, PHP 4 )

uasort -- Sort an array with a user-defined comparison function and maintain index association

Description

void uasort (array array, function cmp_function)

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. The comparison function is user-defined.

Zurück | Anfang | Vor
sort | Hoch | uksort


uksort

(PHP 3>= 3.0.4, PHP 4 )

uksort -- Sort an array by keys using a user-defined comparison function

Description

void uksort (array array, function cmp_function)

This function will sort the keys of an array using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function.

Beispiel 1. uksort() example

function mycompare($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, mycompare);
while(list($key, $value) = each($a)) {
    echo "$key: $value\n";
}
This example would display: 20: twenty 10: ten 4: four 3: three

See also:
arsort(),
asort(),
uasort(),
ksort(),
rsort(), and
sort().

Zurück | Anfang | Vor
uasort | Hoch | usort


usort

(PHP 3>= 3.0.3, PHP 4 )

usort -- Sort an array by values using a user-defined comparison function

Description

void usort (array array, function cmp_function)

This function will sort an array by its values using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function.

The comparison function 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. If two members compare as equal, their order in the sorted array is undefined.

Beispiel 1. usort() example

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";
}
This example would display: 0: 6 1: 5 2: 3 3: 2 4: 1

Anmerkung: Obviously in this trivial case the rsort() function would be more appropriate.

Warnung

The underlying quicksort function in some C libraries (such as on Solaris systems) may cause PHP to crash if the comparison function does not return consistent values.

See also:
 arsort(), asort(),
 ksort(), rsort() and
 sort().

Zurück | Anfang | Vor
uksort | Hoch | Aspell Funktionen


Aspell Funktionen

PHP Handbuch
Zurück Vor

III. Aspell Funktionen

Die aspell() Funktionen erlauben es ein Wort auf korrekte Rechtschreibung zu prüfen und Alternativen anzubieten.

Sie benötigen die aspell-Bibliothek von: http://aspell.sourceforge.net/.

Inhaltsverzeichnis
aspell_new — Läd ein neues Wörterbuch
aspell_check — Überprüfe ein Wort
aspell_check-raw — Überprüfe ein Wort genauso wie es übergeben wird
aspell_suggest — Schlägt mögliche Schreibweisen vor
Zurück | Anfang | Vor
usort | Hoch | aspell_new


aspell_new

(PHP 3>= 3.0.7, PHP 4 )

aspell_new -- Läd ein neues Wörterbuch

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.

Beispiel 1. aspell_new

$aspell_link=aspell_new ("english");

Zurück | Anfang | Vor
Aspell Funktionen | Hoch | aspell_check


aspell_check

(PHP 3>= 3.0.7, PHP 4 )

aspell_check -- Überprüfe ein Wort

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

$aspell_link=aspell_new ("english");
if (aspell_check ($aspell_link, "test")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

Zurück | Anfang | Vor
aspell_new | Hoch | aspell_check-raw


aspell_check-raw

(PHP 3>= 3.0.7, PHP 4 )

aspell_check-raw -- Überprüfe ein Wort genauso wie es übergeben wird

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()

$aspell_link=aspell_new ("english");
if (aspell_check_raw ($aspell_link, "test")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

Zurück | Anfang | Vor
aspell_check | Hoch | aspell_suggest


aspell_suggest

(PHP 3>= 3.0.7, PHP 4 )

aspell_suggest -- Schlägt mögliche Schreibweisen vor

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()

$aspell_link=aspell_new("english");

if (!aspell_check ($aspell_link, "test")) {
    $suggestions=aspell_suggest ($aspell_link, "test");

    for ($i=0; $i < count ($suggestions); $i++) {
       echo "Possible spelling: " . $suggestions[$i] . "<br>";
    }
}

Zurück | Anfang | Vor
aspell_check-raw | Hoch | Mathematische Funktionen mit beliebiger Genauigkeit


Mathematische Funktionen mit beliebiger Genauigkeit

PHP Handbuch
Zurück Vor

IV. Mathematische Funktionen mit beliebiger Genauigkeit

Diese Funktionen sind nur verfügbar, wenn PHP mit --enable-bcmath konfiguriert wurde.

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.
bcscale — Setzt die Genauigkeit aller BC math-Funktionen.
bcsqrt — Quadratwurzel mit beliebiger Genauigkeit.
bcsub — Subtrahiert zwei Zahlen mit beliebiger Genauigkeit.
Zurück | Anfang | Vor
aspell_suggest | Hoch | bcadd


bcadd

(PHP 3, PHP 4 )

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 das Ergebnis als Zeichenkette. Der optionale Parameter Genauigkeit wird benutzt, um die Zahl der Nachkommastellen im Ergebnis zu bestimmen.

Siehe auch bcsub().

Zurück | Anfang | Vor
Mathematische Funktionen mit beliebiger Genauigkeit | Hoch | bccomp


bccomp

(PHP 3, PHP 4 )

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. 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 als der rechte Operand ist, wird +1 zurückgeliefert; wenn der linke Operand kleiner als der rechte Operand ist¸ wird -1 zurückgeliefert.

Zurück | Anfang | Vor
bcadd | Hoch | bcdiv


bcdiv

(PHP 3, PHP 4 )

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 setzt die Anzahl der Nachkommastellen im Ergebnis.

Siehe auch bcmul().

Zurück | Anfang | Vor
bccomp | Hoch | bcmod


bcmod

(PHP 3, PHP 4 )

bcmod -- Modulo zweier Zahlen mit beliebiger Genauigkeit.

Beschreibung

string bcmod (string linker Operand, string Modulus)

Liefert den linken Operanden modulo Modulus.

Siehe auch bcdiv().

Zurück | Anfang | Vor
bcdiv | Hoch | bcmul


bcmul

(PHP 3, PHP 4 )

bcmul -- Multiplikation zweier Zahlen beliebiger Genauigkeit.

Beschreibung

string bcmul (string linker Operand, string rechter Operand [, int Genauigkeit])

Multipliziert den linken Operanden mit dem rechter Operanden. Der optionale Parameter Genauigkeit setzt die Anzahl der Nachkommastellen im Ergebnis.

Siehe auch bcdiv().

Zurück | Anfang | Vor
bcmod | Hoch | bcpow


bcpow

(PHP 3, PHP 4 )

bcpow -- Potenz mit beliebiger Genauigkeit.

Beschreibung

string bcpow (string x, string y [, int Genauigkeit])

Potenziert x mit y. Der optionale Parameter Genauigkeit setzt die Anzahl der Nachkommastellen im Ergebnis.

Siehe auch bcsqrt().

Zurück | Anfang | Vor
bcmul | Hoch | bcscale


bcscale

(PHP 3, PHP 4 )

bcscale -- Setzt die Genauigkeit aller BC math-Funktionen.

Beschreibung

string bcscale (int Genauigkeit)

Diese Funktionen setzt die Genauigkeit aller in der Folge aufgerufenden BC math-Funktionen, die nicht explizit die Genauigkeit durch den optionalen Parameter setzen.

Zurück | Anfang | Vor
bcpow | Hoch | bcsqrt


bcsqrt

(PHP 3, PHP 4 )

bcsqrt -- Quadratwurzel mit beliebiger Genauigkeit.

Beschreibung

string bcsqrt (string Operand, int Genauigkeit)

Liefert die Quadratwurzel von Operand. Der optionale Parameter Genauigkeit setzt die Anzahl der Nachkommastellen im Ergebnis.

Siehe auch bcpow().

Zurück | Anfang | Vor
bcscale | Hoch | bcsub


bcsub

(PHP 3, PHP 4 )

bcsub -- Subtrahiert zwei Zahlen mit beliebiger Genauigkeit.

Beschreibung

string bcsub (string linker Operand, string rechter Operand [, int Genauigkeit])

Subtrahiert den rechten Operanden von dem linken Operanden und liefert das Ergebnis als Zeichenkette. Der optionale Parameter Genauigkeit setzt die Anzahl der Nachkommastellen im Ergebnis.

Siehe auch bcadd().

Zurück | Anfang | Vor
bcsqrt | Hoch | Bzip2 Compression Functions


Bzip2 Compression Functions

PHP Handbuch
Zurück Vor

V. Bzip2 Compression Functions

This module uses the functions of the bzip2 library by Julian Seward to transparently read and write bzip2 (.bz2) compressed files.

bzip2 support in PHP is not enabled by default. You will need to use the --with-bz2[=DIR] configuration option when compiling php to enable bzip2 support. This module requires bzip2/libbzip2 version >= 1.0.x.

Small code example

This example opens a temporary file and writes a test string to it, then prints out the contents of the file.

Beispiel 1. Small bzip2 Example

<?php

$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// open file for writing
$bz = bzopen($filename, "w");

// write string to file
bzwrite($bz, $str);

// close file
bzclose($bz);

// open file for reading
$bz = bzopen($filename, "r");

// read 10 characters
print bzread($bz, 10);

// output until end of the file (or the next 1024 char) and close it.
print bzread($bz);

bzclose($bz);

?>
Inhaltsverzeichnis
bzclose — Close a bzip2 file pointer
bzcompress — Compress a string into bzip2 encoded data
bzdecompress — Decompresses bzip2 encoded data
bzerrno — Returns a bzip2 error number
bzerror — Returns the bzip2 error number and error string in an array
bzerrstr — Returns a bzip2 error string
bzflush — Force a write of all buffered data
bzopen — Open a bzip2 compressed file
bzread — Binary safe bzip2 file read
bzwrite — Binary safe bzip2 file write
Zurück | Anfang | Vor
bcsub | Hoch | bzclose


bzclose

(PHP 4 >= 4.0.4)

bzclose -- Close a bzip2 file pointer

Description

int bzclose (int bz)

Closes the bzip2 file referenced by the pointer bz.

Returns true on success and false on failure.

The file pointer must be valid, and must point to a file successfully opened by bzopen().

See also bzopen().

Zurück | Anfang | Vor
Bzip2 Compression Functions | Hoch | bzcompress


bzcompress

(PHP 4 >= 4.0.4)

bzcompress -- Compress a string into bzip2 encoded data

Description

string bzcompress (string source [, int blocksize [, int workfactor]])

bzcompress() compresses the source string and returns it as bzip2 encoded data.

The optional parameter blocksize specifies the blocksize used during compression and should be a number from 1 to 9 with 9 giving the best compression, but using more resources to do so. blocksize defaults to 4.

The optional parameter workfactor controls how the compression phase behaves when presented with worst case, highly repetitive, input data. The value can be between 0 and 250 with 0 being a special case and 30 being the default value. Regardless of the workfactor, the generated output is the same.

Beispiel 1. bzcompress() Example

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
print( $bzstr );
?>

See also bzdecompress().

Zurück | Anfang | Vor
bzclose | Hoch | bzdecompress


bzdecompress

(PHP 4 >= 4.0.4)

bzdecompress -- Decompresses bzip2 encoded data

Description

string bzdecompress (string source [, int small])

bzdecompress() decompresses the source string containing bzip2 encoded data and returns it. If the optional parameter small is true, an alternative decompression algorithm will be used which uses less memory (the maximum memory requirement drops to around 2300K) but works at roughly half the speed. See the bzip2 documentation for more information about this feature.

Beispiel 1. bzdecompress()

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

print( "Compressed String: " );
print( $bzstr );
print( "\n<br>n" );

$str = bzdecompress($bzstr);
print( "Decompressed String: " );
print( $str );
print( "\n<br>n" );
?>

See also bzcompress().

Zurück | Anfang | Vor
bzcompress | Hoch | bzerrno


bzerrno

(PHP 4 >= 4.0.4)

bzerrno -- Returns a bzip2 error number

Description

int bzerrno (int bz)

Returns the error number of any bzip2 error returned by the file pointer bz.

See also bzerror() and bzerrstr().

Zurück | Anfang | Vor
bzdecompress | Hoch | bzerror


bzerror

(PHP 4 >= 4.0.4)

bzerror -- Returns the bzip2 error number and error string in an array

Description

array bzerror (int bz)

Returns the error number and error string, in an associative array, of any bzip2 error returned by the file pointer bz.

Beispiel 1. bzerror() Example

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

See also bzerrno() and bzerrstr().

Zurück | Anfang | Vor
bzerrno | Hoch | bzerrstr


bzerrstr

(PHP 4 >= 4.0.4)

bzerrstr -- Returns a bzip2 error string

Description

string bzerrstr (int bz)

Returns the error string of any bzip2 error returned by the file pointer bz.

See also bzerrno() and bzerror().

Zurück | Anfang | Vor
bzerror | Hoch | bzflush


bzflush

(PHP 4 >= 4.0.4)

bzflush -- Force a write of all buffered data

Description

int bzflush (int bz)

Forces a write of all buffered bzip2 data for the file pointer bz.

Returns true on success, false on failure.

See also bzread() and bzwrite().

Zurück | Anfang | Vor
bzerrstr | Hoch | bzopen


bzopen

(PHP 4 >= 4.0.4)

bzopen -- Open a bzip2 compressed file

Description

int bzopen (string filename, string mode)

Opens a bzip2 (.bz2) file for reading or writing. filename is the name of the file to open. mode is similar to the fopen() function (`r' for read, `w' for write, etc.).

If the open fails, the function returns false, otherwise it returns a pointer to the newly opened file.

Beispiel 1. bzopen() Example

<?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<br>n" );
print( $decompressed_file );
?>

See also bzclose().

Zurück | Anfang | Vor
bzflush | Hoch | bzread


bzread

(PHP 4 >= 4.0.4)

bzread -- Binary safe bzip2 file read

Description

string bzread (int bz [, int length])

bzread() reads up to length bytes from the bzip2 file pointer referenced by bz. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first. If the optional parameter length is not specified, bzread() will read 1024 (uncompressed) bytes at a time.

Beispiel 1. bzread() Example

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
print( $str );
?>

See also bzwrite() and bzopen().

Zurück | Anfang | Vor
bzopen | Hoch | bzwrite


bzwrite

(PHP 4 >= 4.0.4)

bzwrite -- Binary safe bzip2 file write

Description

int bzwrite (int bz, string data [, int length])

bzwrite() writes the contents of the string data to the bzip2 file stream pointed to by bz. If the optional length argument is given, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

Beispiel 1. bzwrite() Example

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

See also bzread() and bzopen().

Zurück | Anfang | Vor
bzread | Hoch | Kalender-Funktionen


Kalender-Funktionen

PHP Handbuch
Zurück Vor

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://genealogy.org/~scottlee/cal-overview.html, aus der Teile der Erklärungen in den folgenden Funktionsbeschreibungen stammen, sowie die sehr ausführliche Homepage zum Thema ZEIT.

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
JDToGregorian — Konvertierung vom Julianischen Datum zum Gregorianischen Kalender
GregorianToJD — Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
JDToJulian — Konvertierung vom Julianischen Datum zum Julianischen Kalender
JulianToJD — Konvertierung vom Julianischen Kalender zum Julianischen Datum
JDToJewish — Konvertierung vom Julianischen Datum zum Jüdischen Kalender
JewishToJD — Konvertiert vom Jüdischen Kalender zum Julianischen Datum
JDToFrench — Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
FrenchToJD — Konvertiert ein Datum der Französischen Revolution zu einem Julianischen Datum
JDMonthName — Bestimmt den Monat aus dem Julianischen Datum
JDDayOfWeek — Bestimmt den Wochentag aus einem Julianischen Datum
easter_date — Zeitpunkt des Osterfestes (0 Uhr) als UNIX-Timestamp
easter_days — Anzahl der Tage zwischen dem 21. März und Ostersonntag
unixtojd — Konvertiert UNIX-Timestamp in Julianisches Datum
jdtounix — Konvertiert Julianisches Datum in UNIX-Timestamp
Zurück | Anfang | Vor
bzwrite | Hoch | JDToGregorian


JDToGregorian

(PHP 3, PHP 4 )

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 | Anfang | Vor
Kalender-Funktionen | Hoch | GregorianToJD


GregorianToJD

(PHP 3, PHP 4 )

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 | Anfang | Vor
JDToGregorian | Hoch | JDToJulian


JDToJulian

(PHP 3, PHP 4 )

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 | Anfang | Vor
GregorianToJD | Hoch | JulianToJD


JulianToJD

(PHP 3, PHP 4 )

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 | Anfang | Vor
JDToJulian | Hoch | JDToJewish


JDToJewish

(PHP 3, PHP 4 )

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 | Anfang | Vor
JulianToJD | Hoch | JewishToJD


JewishToJD

(PHP 3, PHP 4 )

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 | Anfang | Vor
JDToJewish | Hoch | JDToFrench


JDToFrench

(PHP 3, PHP 4 )

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 | Anfang | Vor
JewishToJD | Hoch | FrenchToJD


FrenchToJD

(PHP 3, PHP 4 )

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 | Anfang | Vor
JDToFrench | Hoch | JDMonthName


JDMonthName

(PHP 3, PHP 4 )

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 | Anfang | Vor
FrenchToJD | Hoch | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4 )

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 | Anfang | Vor
JDMonthName | Hoch | easter_date


easter_date

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC2)

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 | Anfang | Vor
JDDayOfWeek | Hoch | easter_days


easter_days

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC2)

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 | Anfang | Vor
easter_date | Hoch | unixtojd


unixtojd

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
easter_days | Hoch | jdtounix


jdtounix

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
unixtojd | Hoch | CCVS API Functions


CCVS API Functions

PHP Handbuch
Zurück Vor

VII. CCVS API Functions

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, das CCVS Unterstützung vorrausetzt das $ccvs_pfad/lib und $ccvs_pfad/include existieren, und die include 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 http://www.redhat.com/products/ccvs finden.

An diesem Dokumentationsteil wird noch gearbeitet. RedHat unterhält eine geringfügig veraltete aber immernoch brauchbare Dokumentation unter: http://www.redhat.com/products/ccvs/support/CCVS3.3docs/ProgPHP.html.

Inhaltsverzeichnis
—
Zurück | Anfang | Vor
jdtounix | Hoch |


PHP Handbuch
Zurück Vor

(unknown)

--

()

Zurück | Anfang | Vor
CCVS API Functions | Hoch | COM Support Funktionen für Windows


COM Support Funktionen für Windows

PHP Handbuch
Zurück Vor

VIII. COM Support Funktionen für Windows

Diese Funktionen sind nur in der Windows-Version von PHP verfügbar und wurden mit PHP4 eingeführt.

Inhaltsverzeichnis
com_load — ???
com_invoke — ???
com_propget — ???
com_get — ???
com_propput — ???
com_propset — ???
com_set — ???
Zurück | Anfang | Vor
 | Hoch | com_load


com_load

(PHP 3>= 3.0.3, PHP 4 )

com_load -- ???

Description

string com_load (string module name [, string server name])

Zurück | Anfang | Vor
COM Support Funktionen für Windows | Hoch | com_invoke


com_invoke

(PHP 3>= 3.0.3, PHP 4 )

com_invoke -- ???

Description

mixed com_invoke (resource object, string function_name [, mixed function parameters, ...])

Zurück | Anfang | Vor
com_load | Hoch | com_propget


com_propget

(PHP 3>= 3.0.3, PHP 4 )

com_propget -- ???

Description

mixed com_propget (resource object, string property)

Zurück | Anfang | Vor
com_invoke | Hoch | com_get


com_get

(PHP 3>= 3.0.3, PHP 4 )

com_get -- ???

Description

mixed com_get (resource object, string property)

Zurück | Anfang | Vor
com_propget | Hoch | com_propput


com_propput

(PHP 3>= 3.0.3, PHP 4 )

com_propput -- ???

Description

void com_propput (resource object, string property, mixed value)

Zurück | Anfang | Vor
com_get | Hoch | com_propset


com_propset

(PHP 3>= 3.0.3, PHP 4 )

com_propset -- ???

Description

void com_propset (resource object, string property, mixed value)

Diese Funktion ist ein Alias für com_propput().

Zurück | Anfang | Vor
com_propput | Hoch | com_set


com_set

(PHP 3>= 3.0.3, PHP 4 )

com_set -- ???

Description

void com_set (resource object, string property, mixed value)

Diese Funktion ist ein Alias für com_set().

Zurück | Anfang | Vor
com_propset | Hoch | Klassen- und Objekt-Funktionen


Klassen- und Objekt-Funktionen

PHP Handbuch
Zurück Vor

IX. Klassen- und Objekt-Funktionen

Introduction

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, daß 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 — Aufruf einer benutzerdefinierten Methode eines bestimmten Objektes
class_exists — Prüft, ob eine Klasse definiert ist
get_class — Gibt den Namen der Klasse eines Objektes zurück
get_class_methods — Liefert die Namen aller Methoden einer Klasse
get_class_vars — Liefert die Standard-Elemente einer Klasse
get_declared_classes — Gibt ein Array mit den Namen der definierten Klassen zurück
get_object_vars — Liefert die Elemente eines Objekts
get_parent_class — Gibt den Namen der Elternklasse eines Objektes zurück
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 | Anfang | Vor
com_set | Hoch | call_user_method


call_user_method

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
Klassen- und Objekt-Funktionen | Hoch | class_exists


class_exists

(PHP 4 >= 4.0b4)

class_exists -- Prüft, ob eine Klasse definiert ist

Beschreibung

bool class_exists (string class_name)

Diese Funktion ergibt true, falls eine Klasse mit dem Namen class_name definiert ist, ansonsten false.

Zurück | Anfang | Vor
call_user_method | Hoch | get_class


get_class

(PHP 4 >= 4.0b2)

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 | Anfang | Vor
class_exists | Hoch | get_class_methods


get_class_methods

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
get_class | Hoch | get_class_vars


get_class_vars

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
get_class_methods | Hoch | get_declared_classes


get_declared_classes

(PHP 4 >= 4.0RC2)

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).

Zurück | Anfang | Vor
get_class_vars | Hoch | get_object_vars


get_object_vars

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
get_declared_classes | Hoch | get_parent_class


get_parent_class

(PHP 4 >= 4.0b2)

get_parent_class -- Gibt den Namen der Elternklasse eines Objektes zurück

Beschreibung

string get_parent_class (object obj)

Diese Funktion gibt den Namen der Elternklasse der Klasse zurück, von der obj eine Instanz ist.

Siehe auch get_class(), is_subclass_of()

Zurück | Anfang | Vor
get_object_vars | Hoch | is_subclass_of


is_subclass_of

(PHP 4 >= 4.0b4)

is_subclass_of -- Bestimmt, ob ein Objekt zu einer Subklasse der angegebenen Klasse gehört

Description

bool is_subclass_of (object obj, string superclass)

Diese Funktion ergibt true, falls das Objekt obj zu einer Subklasse von superclass gehört, ansonsten false.

Siehe auch get_class(), get_parent_class()

Zurück | Anfang | Vor
get_parent_class | Hoch | method_exists


method_exists

(PHP 4 >= 4.0b2)

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 | Anfang | Vor
is_subclass_of | Hoch | ClibPDF Funktionen


ClibPDF Funktionen

PHP Handbuch
Zurück Vor

X. ClibPDF Funktionen

Mittels ClibPDF können Sie PDF-Dokumente mit PHP erstellen. Sie bekommen diese Bibliothek von FastIO, aber sie ist keine freie Software. Sie sollten auf jeden Fall die Lizenz lesen, bevor Sie anfangen, mit ClibPDF zu experimentieren. Wenn Sie nicht mit den Lizenzbedingungen einverstanden sind, sollten sie die Verwendung der ebenfalls sehr mächtigen pdflib von Thomas Merz erwägen. Funktionalität und API sind der pdflib von Thomas Merz ähnlich, aber in Bezug auf FastIO ist ClibPDF schneller und erzeugt kleinere Dokumente. Mit der neuen Version 2.0 von pdflib könnte sich das geändert haben. Tatsächlich zeigt ein einfacher Leistungsvergleich (Umwandlung des pdfclock.c-Beispiels von pdflib 2.0 in ein PHP-Skript) überhaupt keinen Geschwindigkeitsunterschied. Wenn die Kompression abgeschaltet ist, ist auch die Größe der Datei ähnlich. Von daher sollten Sie einfach beide Bibliotheken testen, um festzustellen, welche Ihre Anforderungen erfüllt.

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.

Anmerkung: Die Funktion cpdf_set_font() hat sich seit PHP 3 geändert und unterstützt nun asiatische Zeichensätze. Der Kodierungsparameter ist keine Zahl mehr, sondern eine Zeichenkette.

Bisher war die Möglichkeit, das PDF-Dokument vollständig im Speicher zu erzeugen, ohne temporäre Dateien zu verwenden, ein großer Vorteil von ClibPDF gegenüber pdflib. Diese Fähigkeit hat pdflib seit Version 3.0 auch. Sie bietet auch die Möglichkeit, Koordinaten in einer vordefinierten Längeneinheit zu übergeben. Dies ist eine praktische Fähigkeit, die aber auch mit pdf_translate() simuliert werden kann.

Ein weiteres nettes Feature 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.

Beispiel 1. Ein einfaches ClibPDF-Beispiel

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
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.php3");
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);
?>
Inhaltsverzeichnis
cpdf_global_set_document_limits — Setzt Beschränkungen für alle PDF-Dokumente
cpdf_set_creator — Setzt das Urheberfeld des PDF-Dokuments
cpdf_set_title — Setzt das Titelfeld PDF-Dokuments
cpdf_set_subject — Setzt das Themenfeld des PDF-Dokuments
cpdf_set_keywords — Setzt das Schlüsselwortfeld des PDF-Dokuments
cpdf_open — Öffnet ein neues PDF-Dokument
cpdf_close — Schließt ein PDF-Dokument
cpdf_page_init — Beginnt eine neue Seite
cpdf_finalize_page — Beendet eine Seite
cpdf_finalize — Beendet ein Dokument
cpdf_output_buffer — Gibt das PDF-Dokument aus dem Zwischenspeicher aus
cpdf_save_to_file — Schreibt ein PDF-Dokument in eine Datei
cpdf_set_current_page — Setzt die aktuelle Seite
cpdf_begin_text — Beginnt einen Textabschnitt
cpdf_end_text — Beendet einen Textabschnitt
cpdf_show — Gibt Text an der aktuellen Position aus
cpdf_show_xy — Gibt Text an der angegebenen Position aus
cpdf_text — Gibt den Text mit Parametern aus
cpdf_set_font — Wählt die aktuelle Schriftart und -größe
cpdf_set_leading — Setzt den Zeilenabstand
cpdf_set_text_rendering — Legt fest, wie Text wiedergegeben wird
cpdf_set_horiz_scaling — Setzt die horizontale Textskalierung
cpdf_set_text_rise — Legt die vertikale Textverschiebung fest
cpdf_set_text_matrix — Legt die Text-Matrix fest
cpdf_set_text_pos — Legt die Textposition fest
cpdf_set_char_spacing — Legt den Zeichenabstand fest
cpdf_set_word_spacing — Legt den Abstand zwischen den Wörtern fest
cpdf_continue_text — Gibt den Text in der nächsten Zeile aus
cpdf_stringwidth — Liefert die Breite einer Zeichenkette in der aktuellen Schriftart
cpdf_save — Sichert die aktuelle Umgebung
cpdf_restore — Stellt die zuvor gesicherte Umgebung wieder her
cpdf_translate — Legt den Ursprung des Koordinatensystems fest
cpdf_scale — Legt die Vergrößerung fest
cpdf_rotate — Legt den Drehwinkel fest
cpdf_setflat — Legt die Flachheit fest
cpdf_setlinejoin — Legt den Typ der Linienverbindungen fest
cpdf_setlinecap — Legt den Typ der Linienenden fest
cpdf_setmiterlimit — Legt die Gehrungsbegrenzung fest
cpdf_setlinewidth — Legt die Linienbreite fest
cpdf_setdash — Setzt eine gestrichelte Linie
cpdf_newpath — Beginnt einen neuen Pfad
cpdf_moveto — Legt die aktuelle Position fest
cpdf_rmoveto — Legt die relative aktuelle Position fest
cpdf_curveto — Zeichnet eine Kurve
cpdf_lineto — Zeichnet eine Linie
cpdf_rlineto — Zeichnet eine Linie (relativ)
cpdf_circle — Zeichnet einen Kreis
cpdf_arc — Zeichnet einen Kreisbogen
cpdf_rect — Zeichnet ein Rechteck
cpdf_closepath — Schließt den aktuellen Pfad
cpdf_stroke — Zeichnet eine Linie entlang des aktuellen Pfades
cpdf_closepath_stroke — Schließt einen Pfad und zeichnet eine Linie entlang des Pfades
cpdf_fill — Füllt den aktuellen Pfad
cpdf_fill_stroke — Füllt und zeichnet den aktuellen Pfad
cpdf_closepath_fill_stroke — Schließt, füllt und zeichnet den aktuellen Pfad
cpdf_clip — Beschränkt alle Zeichnungen auf den aktuellen Pfad
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_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_add_outline — Fügt ein Lesezeichen für die aktuelle Seite hinzu
cpdf_set_page_animation — Legt den Übergang zwischen den Seiten fest
cpdf_import_jpeg — Öffnet ein JPEG-Bild
cpdf_place_inline_image — Plaziert ein Bild auf der Seite
cpdf_add_annotation — Fügt eine Anmerkung ein
Zurück | Anfang | Vor
method_exists | Hoch | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4 >= 4.0b4)

cpdf_global_set_document_limits -- Setzt Beschränkungen für alle PDF-Dokumente

Beschreibung

void 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.

Siehe auch: cpdf_open().

Zurück | Anfang | Vor
ClibPDF Funktionen | Hoch | cpdf_set_creator


cpdf_set_creator

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_creator -- Setzt das Urheberfeld des PDF-Dokuments

Beschreibung

void cpdf_set_creator (string Urheber)

Die Funktion cpdf_set_creator() setzt den Urheber eines PDF-Dokuments.

Siehe auch: cpdf_set_subject(),
cpdf_set_title() und
cpdf_set_keywords().

Zurück | Anfang | Vor
cpdf_global_set_document_limits | Hoch | cpdf_set_title


cpdf_set_title

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_title -- Setzt das Titelfeld PDF-Dokuments

Beschreibung

void cpdf_set_title (string Titel)

Die Funktion cpdf_set_title() setzt den Titel eines PDF-Dokuments.

Siehe auch: cpdf_set_subject(),
cpdf_set_creator() und
cpdf_set_keywords().

Zurück | Anfang | Vor
cpdf_set_creator | Hoch | cpdf_set_subject


cpdf_set_subject

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_subject -- Setzt das Themenfeld des PDF-Dokuments

Beschreibung

void cpdf_set_subject (string Thema)

Die Funktion cpdf_set_subject() setzt das Thema eines PDF-Dokuments.

Siehe auch: cpdf_set_title(),
cpdf_set_creator() und
cpdf_set_keywords().

Zurück | Anfang | Vor
cpdf_set_title | Hoch | cpdf_set_keywords


cpdf_set_keywords

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_keywords -- Setzt das Schlüsselwortfeld des PDF-Dokuments

Beschreibung

void cpdf_set_keywords (string Schlüsselwörter)

Die Funktion cpdf_set_keywords() setzt die Schlüsselwörter eines PDF-Dokuments.

Siehe auch: cpdf_set_title(),
cpdf_set_creator() und
cpdf_set_subject().

Zurück | Anfang | Vor
cpdf_set_subject | Hoch | cpdf_open


cpdf_open

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

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 | Anfang | Vor
cpdf_set_keywords | Hoch | cpdf_close


cpdf_close

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_close -- Schließt ein PDF-Dokument

Beschreibung

void cpdf_close (int PDF-Dokument)

Die Funktion cpdf_close() schließt das
PDF-Dokument. Sie sollte als letzte, sogar nach
cpdf_finalize(),
cpdf_output_buffer() und
cpdf_save_to_file(), aufgerufen werden.

Siehe auch: cpdf_open().

Zurück | Anfang | Vor
cpdf_open | Hoch | cpdf_page_init


cpdf_page_init

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_page_init -- Beginnt eine neue Seite

Beschreibung

void cpdf_page_init (int PDF-Dokument, int Seitennummer, int Ausrichtung, double Höhe, double Breite [, double Einheit])

Die Funktion cpdf_page_init() beginnt eine neue Seite mit der Höhe Höhe und der Breite Breite. 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 | Anfang | Vor
cpdf_close | Hoch | cpdf_finalize_page


cpdf_finalize_page

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

cpdf_finalize_page -- Beendet eine Seite

Beschreibung

void cpdf_finalize_page (int PDF-Dokument, int Seitennummer)

Die Funktion cpdf_finalize_page() beendet die Seite mit der Seitennummer page number.

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 | Anfang | Vor
cpdf_page_init | Hoch | cpdf_finalize


cpdf_finalize

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_finalize -- Beendet ein Dokument

Beschreibung

void cpdf_finalize (int PDF-Dokument)

Die Funktion cpdf_finalize() beendet das Dokument PDF-Dokument. Sie müssen danach trotzdem noch cpdf_close() aufrufen.

Siehe auch: cpdf_close().

Zurück | Anfang | Vor
cpdf_finalize_page | Hoch | cpdf_output_buffer


cpdf_output_buffer

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_output_buffer -- Gibt das PDF-Dokument aus dem Zwischenspeicher aus

Beschreibung

void 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.

Siehe auch: cpdf_open().

Zurück | Anfang | Vor
cpdf_finalize | Hoch | cpdf_save_to_file


cpdf_save_to_file

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_save_to_file -- Schreibt ein PDF-Dokument in eine Datei

Beschreibung

void 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.

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 | Anfang | Vor
cpdf_output_buffer | Hoch | cpdf_set_current_page


cpdf_set_current_page

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_set_current_page -- Setzt die aktuelle Seite

Beschreibung

void 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.

Siehe auch: cpdf_finalize_page().

Zurück | Anfang | Vor
cpdf_save_to_file | Hoch | cpdf_begin_text


cpdf_begin_text

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_begin_text -- Beginnt einen Textabschnitt

Beschreibung

void cpdf_begin_text (int PDF-Dokument)

Die Funktion cpdf_begin_text() beginnt einen Textabschnitt. Er 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 | Anfang | Vor
cpdf_set_current_page | Hoch | cpdf_end_text


cpdf_end_text

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_end_text -- Beendet einen Textabschnitt

Beschreibung

void cpdf_end_text (int PDF-Dokument)

Die Funktion cpdf_end_text() beendet einen Textabschnitt, der mit cpdf_begin_text() begonnen wurde.

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 | Anfang | Vor
cpdf_begin_text | Hoch | cpdf_show


cpdf_show

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_show -- Gibt Text an der aktuellen Position aus

Beschreibung

void cpdf_show (int PDF-Dokument, string Text)

Die Funktion cpdf_show() gibt die Zeichenkette Text an der aktuellen Position aus.

Siehe auch: cpdf_text(),
cpdf_begin_text() und
cpdf_end_text().

Zurück | Anfang | Vor
cpdf_end_text | Hoch | cpdf_show_xy


cpdf_show_xy

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_show_xy -- Gibt Text an der angegebenen Position aus

Beschreibung

void cpdf_show_xy (int PDF-Dokument, string Text, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_show_xy() gibt die Zeichenkette Text an der Position mit den Koordinaten (x-koor, y-koor) aus.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Anmerkung: Ohne die optionalen Parameter ist die Funktion cpdf_show_xy() mit cpdf_text() identisch.

Siehe auch: cpdf_text().

Zurück | Anfang | Vor
cpdf_show | Hoch | cpdf_text


cpdf_text

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_text -- Gibt den Text mit Parametern aus

Beschreibung

void cpdf_text (int PDF-Dokument, string Text, double x-koor, double y-koor [, int Modus [, double Richtung [, int Ausrichtungsmodus]]])

Die Funktion cpdf_text() gibt die Zeichenkette Text an der Position mit den Koordinaten (x-koor, y-koor) aus.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen. 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 | Anfang | Vor
cpdf_show_xy | Hoch | cpdf_set_font


cpdf_set_font

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_font -- Wählt die aktuelle Schriftart und -größe

Beschreibung

void cpdf_set_font (int PDF-Dokument, string Schriftart, double 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.

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 | Anfang | Vor
cpdf_text | Hoch | cpdf_set_leading


cpdf_set_leading

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_leading -- Setzt den Zeilenabstand

Beschreibung

void cpdf_set leading (int PDF-Dokument, double Abstand)

Die Funktion cpdf_set_leading() setzt den Zeilenabstand. Dieser wird verwendet, wenn der Text durch cpdf_continue_text() ausgegeben wird.

Siehe auch: cpdf_continue_text().

Zurück | Anfang | Vor
cpdf_set_font | Hoch | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_text_rendering -- Legt fest, wie Text wiedergegeben wird

Beschreibung

void cpdf_set_text_rendering (int PDF-Dokument, int Modus)

Die Funktion cpdf_set_text_rendering() legt fest, wie der Text wiedergegeben wird.

Die möglichen Werte für 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 | Anfang | Vor
cpdf_set_leading | Hoch | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_horiz_scaling -- Setzt die horizontale Textskalierung

Beschreibung

void cpdf_set_horiz_scaling (int PDF-Dokument, double Maßstab)

Die Funktion cpdf_set_horiz_scaling() setzt die horizontale Skalierung auf Maßstab Prozent.

Zurück | Anfang | Vor
cpdf_set_text_rendering | Hoch | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_text_rise -- Legt die vertikale Textverschiebung fest

Beschreibung

void cpdf_set_text_rise (int PDF-Dokument, double Verschiebung)

Die Funktion cpdf_set_text_rise() legt die Verschiebung des Texts um Verschiebung Einheiten nach oben fest.

Zurück | Anfang | Vor
cpdf_set_horiz_scaling | Hoch | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_text_matrix -- Legt die Text-Matrix fest

Beschreibung

void 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.

Zurück | Anfang | Vor
cpdf_set_text_rise | Hoch | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_text_pos -- Legt die Textposition fest

Beschreibung

void cpdf_set_text_pos (int PDF-Dokument, double x-koor, double 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_show() cpdf_text().

Zurück | Anfang | Vor
cpdf_set_text_matrix | Hoch | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_char_spacing -- Legt den Zeichenabstand fest

Beschreibung

void cpdf_set_char_spacing (int PDF-Dokument, double Abstand)

Die Funktion cpdf_set_char_spacing() legt den Abstand zwischen den Zeichen fest.

Siehe auch: cpdf_set_word_spacing() cpdf_set_leading().

Zurück | Anfang | Vor
cpdf_set_text_pos | Hoch | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_set_word_spacing -- Legt den Abstand zwischen den Wörtern fest

Beschreibung

void cpdf_set_word_spacing (int PDF-Dokument, double Abstand)

Die Funktion cpdf_set_word_spacing() legt den Abstand zwischen den Wörtern fest.

Siehe auch: cpdf_set_char_spacing() cpdf_set_leading().

Zurück | Anfang | Vor
cpdf_set_char_spacing | Hoch | cpdf_continue_text


cpdf_continue_text

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_continue_text -- Gibt den Text in der nächsten Zeile aus

Beschreibung

void cpdf_continue_text (int PDF-Dokument, string Text)

Die Funktion cpdf_continue_text() gibt die Zeichenkette in Text in der nächsten Zeile aus.

Siehe auch: cpdf_show_xy(),
cpdf_text(),
cpdf_set_leading() und
cpdf_set_text_pos().

Zurück | Anfang | Vor
cpdf_set_word_spacing | Hoch | cpdf_stringwidth


cpdf_stringwidth

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_stringwidth -- Liefert die Breite einer Zeichenkette in der aktuellen Schriftart

Beschreibung

double cpdf_stringwidth (int PDF-Dokument, string Text)

Die Funktion cpdf_stringwidth() gibt die Breite der Zeichenkette in Text zurück. Zuvor muß eine Schriftart festgelegt werden.

Siehe auch: cpdf_set_font().

Zurück | Anfang | Vor
cpdf_continue_text | Hoch | cpdf_save


cpdf_save

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_save -- Sichert die aktuelle Umgebung

Beschreibung

void 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 daß es sich auf andere Objekte auswirkt.

Siehe auch: cpdf_restore().

Zurück | Anfang | Vor
cpdf_stringwidth | Hoch | cpdf_restore


cpdf_restore

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_restore -- Stellt die zuvor gesicherte Umgebung wieder her

Beschreibung

void 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 daß es sich auf andere Objekte auswirkt.

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 | Anfang | Vor
cpdf_save | Hoch | cpdf_translate


cpdf_translate

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_translate -- Legt den Ursprung des Koordinatensystems fest

Beschreibung

void cpdf_translate (int PDF-Dokument, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_translate() setzt den Ursprung des Koordinatensystems auf den Punkt (x-koor, y-koor).

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Zurück | Anfang | Vor
cpdf_restore | Hoch | cpdf_scale


cpdf_scale

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_scale -- Legt die Vergrößerung fest

Beschreibung

void cpdf_scale (int PDF-Dokument, double x-Vergrößerung, double y-Vergrößerung)

Die Funktion cpdf_scale() setzt den Vergrößerungsfaktor in beide Richtungen.

Zurück | Anfang | Vor
cpdf_translate | Hoch | cpdf_rotate


cpdf_rotate

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_rotate -- Legt den Drehwinkel fest

Beschreibung

void cpdf_rotate (int PDF-Dokument, double Winkel)

Die Funktion cpdf_rotate() setzt die Drehung in Grad auf Winkel.

Zurück | Anfang | Vor
cpdf_scale | Hoch | cpdf_setflat


cpdf_setflat

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setflat -- Legt die Flachheit fest

Beschreibung

void cpdf_setflat (int PDF-Dokument, double Flachheit)

Die Funktion cpdf_setflat() setzt die Flachheit auf einen Wert zwischen 0 und 100.

Zurück | Anfang | Vor
cpdf_rotate | Hoch | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setlinejoin -- Legt den Typ der Linienverbindungen fest

Beschreibung

void cpdf_setlinejoin (int PDF-Dokument, long Typ)

Die Funktion cpdf_setlinejoin() setzt den Typ der Linienverbindungen auf einen Wert zwischen 0 und 2. 0 = Gehrung, 1 = rund, 2 = schräg.

Zurück | Anfang | Vor
cpdf_setflat | Hoch | cpdf_setlinecap


cpdf_setlinecap

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setlinecap -- Legt den Typ der Linienenden fest

Beschreibung

void 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.

Zurück | Anfang | Vor
cpdf_setlinejoin | Hoch | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setmiterlimit -- Legt die Gehrungsbegrenzung fest

Beschreibung

void cpdf_setmiterlimit (int PDF-Dokument, double Wert)

Die Funktion cpdf_setmiterlimit() setzt die Gehrungsbegrenzung auf einen Wert größer oder gleich 1.

Zurück | Anfang | Vor
cpdf_setlinecap | Hoch | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setlinewidth -- Legt die Linienbreite fest

Beschreibung

void cpdf_setlinewidth (int PDF-Dokument, double Breite)

Die Funktion cpdf_setlinewidth() setzt die Linienbreite auf Breite.

Zurück | Anfang | Vor
cpdf_setmiterlimit | Hoch | cpdf_setdash


cpdf_setdash

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setdash -- Setzt eine gestrichelte Linie

Beschreibung

void cpdf_setdash (int PDF-Dokument, double schwarz, double 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.

Zurück | Anfang | Vor
cpdf_setlinewidth | Hoch | cpdf_newpath


cpdf_newpath

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_newpath -- Beginnt einen neuen Pfad

Beschreibung

void cpdf_newpath (int PDF-Dokument)

Die Funktion cpdf_newpath() beginnt auf dem durch den Parameter PDF-Dokument angegebenen Dokument einen neuen Pfad.

Zurück | Anfang | Vor
cpdf_setdash | Hoch | cpdf_moveto


cpdf_moveto

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_moveto -- Legt die aktuelle Position fest

Beschreibung

void cpdf_moveto (int PDF-Dokument, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_moveto() setzt die aktuelle Position auf die Koordinaten x-koor und y-koor.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_rmoveto().

Zurück | Anfang | Vor
cpdf_newpath | Hoch | cpdf_rmoveto


cpdf_rmoveto

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_rmoveto -- Legt die relative aktuelle Position fest

Beschreibung

void cpdf_rmoveto (int PDF-Dokument, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_rmoveto() setzt die aktuelle Position relativ zu den Koordinaten x-koor und y-koor.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_moveto().

Zurück | Anfang | Vor
cpdf_moveto | Hoch | cpdf_curveto


cpdf_curveto

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_curveto -- Zeichnet eine Kurve

Beschreibung

void cpdf_curveto (int PDF-Dokument, double x1, double y1, double x2, double y2, double x3, double 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto(),
cpdf_rlineto() und
cpdf_lineto().

Zurück | Anfang | Vor
cpdf_rmoveto | Hoch | cpdf_lineto


cpdf_lineto

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_lineto -- Zeichnet eine Linie

Beschreibung

void cpdf_lineto (int PDF-Dokument, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_lineto() zeichnet eine Linie vom aktuellen Punkt zum Punkt mit den Koordinaten (x-koor, y-koor).

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto() und
cpdf_curveto().

Zurück | Anfang | Vor
cpdf_curveto | Hoch | cpdf_rlineto


cpdf_rlineto

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_rlineto -- Zeichnet eine Linie (relativ)

Beschreibung

void cpdf_rlineto (int PDF-Dokument, double x-koor, double y-koor [, int Modus])

Die Funktion cpdf_rlineto() zeichnet eine Linie vom aktuellen Punkt zum relativen Punkt mit den Koordinaten (x-koor, y-koor).

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_moveto(),
cpdf_rmoveto() und
cpdf_curveto().

Zurück | Anfang | Vor
cpdf_lineto | Hoch | cpdf_circle


cpdf_circle

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_circle -- Zeichnet einen Kreis

Beschreibung

void cpdf_circle (int PDF-Dokument, double x-koor, double y-koor, double Radius [, int Modus])

Die Funktion cpdf_circle() zeichnet einen Kreis mit dem Mittelpunkt (x-koor, y-koor) und dem Radius Radius.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_arc().

Zurück | Anfang | Vor
cpdf_rlineto | Hoch | cpdf_arc


cpdf_arc

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_arc -- Zeichnet einen Kreisbogen

Beschreibung

void cpdf_arc (int PDF-Dokument, double x-koor, double y-koor, double Radius, double Anfang, double 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_circle().

Zurück | Anfang | Vor
cpdf_circle | Hoch | cpdf_rect


cpdf_rect

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_rect -- Zeichnet ein Rechteck

Beschreibung

void cpdf_rect (int PDF-Dokument, double x-koor, double y-koor, double Breite, double 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Zurück | Anfang | Vor
cpdf_arc | Hoch | cpdf_closepath


cpdf_closepath

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_closepath -- Schließt den aktuellen Pfad

Beschreibung

void cpdf_closepath (int PDF-Dokument)

Die Funktion cpdf_closepath() schließt den aktuellen Pfad.

Zurück | Anfang | Vor
cpdf_rect | Hoch | cpdf_stroke


cpdf_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_stroke -- Zeichnet eine Linie entlang des aktuellen Pfades

Beschreibung

void cpdf_stroke (int PDF-Dokument)

Die Funktion cpdf_stroke() Zeichnet eine Linie entlang des aktuellen Pfades.

Siehe auch: cpdf_closepath() und cpdf_closepath_stroke().

Zurück | Anfang | Vor
cpdf_closepath | Hoch | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_closepath_stroke -- Schließt einen Pfad und zeichnet eine Linie entlang des Pfades

Beschreibung

void cpdf_closepath_stroke (int PDF-Dokument)

Die Funktion cpdf_closepath_stroke() ist eine
Kombination aus cpdf_closepath() und
cpdf_stroke(). Der Pfad wird geschlossen.

Siehe auch: cpdf_closepath() und cpdf_stroke().

Zurück | Anfang | Vor
cpdf_stroke | Hoch | cpdf_fill


cpdf_fill

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_fill -- Füllt den aktuellen Pfad

Beschreibung

void cpdf_fill (int PDF-Dokument)

Die Funktion cpdf_fill() füllt den Innenraum des aktuellen Pfades mit der aktuellen Füllfarbe.

Siehe auch: cpdf_closepath(),
cpdf_stroke(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Anfang | Vor
cpdf_closepath_stroke | Hoch | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_fill_stroke -- Füllt und zeichnet den aktuellen Pfad

Beschreibung

void 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.

Siehe auch: cpdf_closepath(),
cpdf_stroke(), cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Anfang | Vor
cpdf_fill | Hoch | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_closepath_fill_stroke -- Schließt, füllt und zeichnet den aktuellen Pfad

Beschreibung

void 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.

Siehe auch: cpdf_closepath(),
cpdf_stroke(), cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() und
cpdf_setrgbcolor().

Zurück | Anfang | Vor
cpdf_fill_stroke | Hoch | cpdf_clip


cpdf_clip

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_clip -- Beschränkt alle Zeichnungen auf den aktuellen Pfad

Beschreibung

void cpdf_clip (int PDF-Dokument)

Die Funktion cpdf_clip() beschränkt alle Zeichnungen auf den aktuellen Pfad.

Zurück | Anfang | Vor
cpdf_closepath_fill_stroke | Hoch | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setgray_fill -- Setzt die Füllfarbe auf einen Grauwert

Beschreibung

void cpdf_setgray_fill (int PDF-Dokument, double Grauwert)

The cpdf_setgray_fill() function sets the current gray value to fill a path.

Siehe auch: cpdf_setrgbcolor_fill().

Zurück | Anfang | Vor
cpdf_clip | Hoch | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setgray_stroke -- Setzt die Zeichenfarbe auf einen Grauwert

Beschreibung

void cpdf_setgray_stroke (int PDF-Dokument, double Grauwert)

Die Funktion cpdf_setgray_stroke() setzt die aktuelle Zeichenfarbe auf den angegebenen Grauwert.

Siehe auch: cpdf_setrgbcolor_stroke().

Zurück | Anfang | Vor
cpdf_setgray_fill | Hoch | cpdf_setgray


cpdf_setgray

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setgray -- Setzt Zeichen- und Füllfarbe auf einen Grauwert

Beschreibung

void cpdf_setgray (int PDF-Dokument, double Grauwert)

Die Funktion cpdf_setgray_stroke() setzt die aktuelle Zeichen- und Füllfarbe auf den angegebenen Grauwert.

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor_fill().

Zurück | Anfang | Vor
cpdf_setgray_stroke | Hoch | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setrgbcolor_fill -- Setzt die Füllfarbe auf einen RGB-Farbwert

Beschreibung

void cpdf_setrgbcolor_fill (int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

The cpdf_setrgbcolor_fill() function sets the current rgb color value to fill a path.

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor().

Zurück | Anfang | Vor
cpdf_setgray | Hoch | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setrgbcolor_stroke -- Setzt die Zeichenfarbe auf einen RGB-Farbwert

Beschreibung

void cpdf_setrgbcolor_stroke (int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

Die Funktion cpdf_setrgbcolor_stroke() setzt die aktuelle Zeichenfarbe auf den angegebenen RGB-Farbwert.

Siehe auch: cpdf_setrgbcolor_fill() und cpdf_setrgbcolor().

Zurück | Anfang | Vor
cpdf_setrgbcolor_fill | Hoch | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3>= 3.0.8, PHP 4 >= 4.0b4)

cpdf_setrgbcolor -- Setzt Zeichen- und Füllfarbe auf einen RGB-Farbwert

Beschreibung

void cpdf_setrgbcolor (int PDF-Dokument, double Rotwert, double Grünwert, double Blauwert)

Die Funktion cpdf_setrgbcolor_stroke() setzt die aktuelle Zeichen- und Füllfarbe auf den angegebenen RGB-Farbwert.

Siehe auch: cpdf_setrgbcolor_stroke() und cpdf_setrgbcolor_fill().

Zurück | Anfang | Vor
cpdf_setrgbcolor_stroke | Hoch | cpdf_add_outline


cpdf_add_outline

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_add_outline -- Fügt ein Lesezeichen für die aktuelle Seite hinzu

Beschreibung

void cpdf_add_outline (int PDF-Dokument, 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 | Anfang | Vor
cpdf_setrgbcolor | Hoch | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_set_page_animation -- Legt den Übergang zwischen den Seiten fest

Beschreibung

void cpdf_set_page_animation (int PDF-Dokument, int Übergang, double Dauer)

Die Funktion cpdf_set_page_animation() legt den Übergang zwischen aufeinanderfolgenden Seiten fest.

Ü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, daß dich die alte Seite auflöst und die nächste Seite enthüllt,
6, daß der Auflösungseffekt vom einen Bildschirmrand zum anderen wandert,
7, daß 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 | Anfang | Vor
cpdf_add_outline | Hoch | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_import_jpeg -- Öffnet ein JPEG-Bild

Beschreibung

int cpdf_import_jpeg (int PDF-Dokument, string Dateiname, double x-koor, double y-koor, double Winkel, double Breite, double Höhe, double x-Skalierung, double y-Skalierung [, int Modus])

Die Funktion cpdf_import_jpeg() öffnet ein Bild, das unter dem Namen Dateiname gespeichert wurde. Das Bild muß 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_place_inline_image().

Zurück | Anfang | Vor
cpdf_set_page_animation | Hoch | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3>= 3.0.9, PHP 4 >= 4.0b4)

cpdf_place_inline_image -- Plaziert ein Bild auf der Seite

Beschreibung

void cpdf_place_inline_image (int PDF-Dokument, int Bild, double x-koor, double y-koor, double Winkel, double Breite, double Höhe [, int Modus])

Die Funktion cpdf_place_inline_image() plaziert auf der Seite ein Bild, das mit der PHP-Image-Funktion erstellt wurde, an der Position (x-koor, y-koor). Das Bild kann gleichzeitig skaliert werden.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Siehe auch: cpdf_import_jpeg().

Zurück | Anfang | Vor
cpdf_import_jpeg | Hoch | cpdf_add_annotation


cpdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

cpdf_add_annotation -- Fügt eine Anmerkung ein

Beschreibung

void cpdf_add_annotation (int PDF-Dokument, double ulx, double uly, double orx, double 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.

Der optionale Parameter Modus bestimmt die Länge einer Einheit. Wenn er 0 ist oder weggelassen wurde, wird die Einheit verwendet, die für die Seite als Standard angegeben wurde. Andernfalls werden die Koordinaten unabhängig von der aktuellen Einheit in Postscript-Punkten gemessen.

Zurück | Anfang | Vor
cpdf_place_inline_image | Hoch | CURL, Client URL Library Functions


CURL, Client URL Library Functions

PHP Handbuch
Zurück Vor

XI. CURL, Client URL Library Functions

PHP supports libcurl, a library, created by Daniel Stenberg, that allows you to connect and communicate to many different types of servers with many different types of protocols. libcurl currently supports the http, https, ftp, gopher, telnet, dict, file, and ldap protocols. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with PHP's ftp extension), HTTP form based upload, proxies, cookies and user+password authentication.

In order to use the CURL functions you need to install the CURL package. PHP requires that you use CURL 7.0.2-beta or higher. PHP will not work with any version of CURL below version 7.0.2-beta.

To use PHP's CURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the "include" directory there should be a folder named "curl" which should contain the easy.h and curl.h files. There should be a file named "libcurl.a" located in the "lib" directory.

These functions have been added in PHP 4.0.2.

Once you've compiled PHP with CURL support, you can begin using the curl functions. The basic idea behind the CURL functions is that you initialize a CURL session using the curl_init(), then you can set all your options for the transfer via the curl_exec() and then you finish off your session using the curl_close(). Here is an example that uses the CURL functions to fetch the PHP homepage into a file:

Beispiel 1. Using PHP's CURL module to fetch the PHP homepage

<?php

$ch = curl_init ("http://www.php.net/");
$fp = fopen ("php_homepage.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>

Inhaltsverzeichnis
curl_init — Initialize a CURL session
curl_setopt — Set an option for a CURL transfer
curl_exec — Perform a CURL session
curl_close — Close a CURL session
curl_version — Return the current CURL version
Zurück | Anfang | Vor
cpdf_add_annotation | Hoch | curl_init


curl_init

(PHP 4 >= 4.0.2)

curl_init -- Initialize a CURL session

Description

int curl_init ([string url])

The curl_init() will initialize a new session and return a CURL handle for use with the curl_setopt(), curl_exec(), and curl_close() functions. If the optional url parameter is supplied then the CURLOPT_URL option will be set to the value of the parameter. You can manually set this using the curl_setopt() function.

Beispiel 1. Initializing a new CURL session and fetching a webpage

<?php
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.zend.com/");
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);

curl_close ($ch);
?>

See also: curl_close(), curl_setopt()

Zurück | Anfang | Vor
CURL, Client URL Library Functions | Hoch | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2)

curl_setopt -- Set an option for a CURL transfer

Description

bool curl_setopt (int ch, string option, mixed value)

The curl_setopt() function will set options for a CURL session identified by the ch parameter. The option parameter is the option you want to set, and the value is the value of the option given by the option.

The value should be a long for the following options (specified in the option parameter):

  • CURLOPT_INFILESIZE: When you are uploading a file to a remote site, this option should be used to tell PHP what the expected size of the infile will be.

  • CURLOPT_VERBOSE: Set this option to a non-zero value if you want CURL to report everything that is happening.

  • CURLOPT_HEADER: Set this option to a non-zero value if you want the header to be included in the output.

  • CURLOPT_NOPROGRESS: Set this option to a non-zero value if you don't want PHP to display a progress meter for CURL transfers

    Anmerkung: PHP automatically sets this option to a non-zero parameter, this should only be changed for debugging purposes.

  • CURLOPT_NOBODY: Set this option to a non-zero value if you don't want the body included with the output.

  • CURLOPT_FAILONERROR: Set this option to a non-zero value if you want PHP to fail silently if the HTTP code returned is greater than 300. The default behaviour is to return the page normally, ignoring the code.

  • CURLOPT_UPLOAD: Set this option to a non-zero value if you want PHP to prepare for an upload.

  • CURLOPT_POST: Set this option to a non-zero value if you want PHP to do a regular HTTP POST. This POST is a normal application/x-www-from-urlencoded kind, most commonly used by HTML forms.

  • CURLOPT_FTPLISTONLY: Set this option to a non-zero value and PHP will just list the names of an FTP directory.

  • CURLOPT_FTPAPPEND: Set this option to a non-zero value and PHP will append to the remote file instead of overwriting it.

  • CURLOPT_NETRC: Set this option to a non-zero value and PHP will scan your ~./netrc file to find your username and password for the remote site that you're establishing a connection with.

  • CURLOPT_FOLLOWLOCATION: Set this option to a non-zero value to follow any "Location: " header that the server sends as a part of the HTTP header (note this is recursive, PHP will follow as many "Location: " headers that it is sent.)

  • CURLOPT_PUT: Set this option a non-zero value to HTTP PUT a file. The file to PUT must be set with the CURLOPT_INFILE and CURLOPT_INFILESIZE.

  • CURLOPT_MUTE: Set this option to a non-zero value and PHP will be completely silent with regards to the CURL functions.

  • CURLOPT_TIMEOUT: Pass a long as a parameter that contains the maximum time, in seconds, that you'll allow the curl functions to take.

  • CURLOPT_LOW_SPEED_LIMIT: Pass a long as a parameter that contains the transfer speed in bytes per second that the transfer should be below during CURLOPT_LOW_SPEED_TIME seconds for PHP to consider it too slow and abort.

  • CURLOPT_LOW_SPEED_TIME: Pass a long as a parameter that contains the time in seconds that the transfer should be below the CURLOPT_LOW_SPEED_LIMIT for PHP to consider it too slow and abort.

  • CURLOPT_RESUME_FROM: Pass a long as a parameter that contains the offset, in bytes, that you want the transfer to start from.

  • CURLOPT_SSLVERSION: Pass a long as a parameter that contains the SSL version (2 or 3) to use. By default PHP will try and determine this by itself, although, in some cases you must set this manually.

  • CURLOPT_TIMECONDITION: Pass a long as a parameter that defines how the CURLOPT_TIMEVALUE is treated. You can set this parameter to TIMECOND_IFMODSINCE or TIMECOND_ISUNMODSINCE. This is a HTTP-only feature.

  • CURLOPT_TIMEVALUE: Pass a long as a parameter that is the time in seconds since January 1st, 1970. The time will be used as specified by the CURLOPT_TIMEVALUE option, or by default the TIMECOND_IFMODSINCE will be used.

The value parameter should be a string for the following values of the option parameter:

  • CURLOPT_URL: This is the URL that you want PHP to fetch. You can also set this option when initializing a session with the curl_init() function.

  • CURLOPT_USERPWD: Pass a string formatted in the [username]:[password] manner, for PHP to use for the connection. connection.

  • CURLOPT_PROXYUSERPWD: Pass a string formatted in the [username]:[password] format for connection to the HTTP proxy.

  • CURLOPT_RANGE: Pass the specified range you want. It should be in the "X-Y" format, where X or Y may be left out. The HTTP transfers also support several intervals, seperated with commas as in X-Y,N-M.

  • CURLOPT_POSTFIELDS: Pass a string containing the full data to post in an HTTP "POST" operation.

  • CURLOPT_REFERER: Pass a string containing the "referer" header to be used in an HTTP request.

  • CURLOPT_USERAGENT: Pass a string containing the "user-agent" header to be used in an HTTP request.

  • CURLOPT_FTPPORT: Pass a string containing the which will be used to get the IP address to use for the ftp "POST" instruction. The POST instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under UNIX), or just a plain '-' to use the systems default IP address.

  • CURLOPT_COOKIE: Pass a string containing the content of the cookie to be set in the HTTP header.

  • CURLOPT_SSLCERT: Pass a string containing the filename of PEM formatted certificate.

  • CURLOPT_SSLCERTPASSWD: Pass a string containing the password required to use the CURLOPT_SSLCERT certificate.

  • CURLOPT_COOKIEFILE: Pass a string containing the name of the file containing the cookiee data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.

  • CURLOPT_CUSTOMREQUEST: Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing DELETE or another, more obscure, HTTP request.

    Anmerkung: Don't do this without making sure your server supports the command first.

The following options expect a file descriptor that is obtained by using the fopen() function:

  • CURLOPT_FILE: The file where the output of your transfer should be placed, the default is STDOUT.

  • CURLOPT_INFILE: The file where the input of your transfer comes from.

  • CURLOPT_WRITEHEADER: The file to write the header part of the output into.

  • CURLOPT_STDERR: The file to write errors to instead of stderr.

Zurück | Anfang | Vor
curl_init | Hoch | curl_exec


curl_exec

(PHP 4 >= 4.0.2)

curl_exec -- Perform a CURL session

Description

bool curl_exec (int ch)

This function is should be called after you initialize a CURL session and all the options for the session are set. Its purpose is simply to execute the predefined CURL session (given by the ch).

Zurück | Anfang | Vor
curl_setopt | Hoch | curl_close


curl_close

(PHP 4 >= 4.0.2)

curl_close -- Close a CURL session

Description

void curl_close (int ch)

This functions closes a CURL session and frees all ressources. The CURL handle, ch, is also deleted.

Zurück | Anfang | Vor
curl_exec | Hoch | curl_version


curl_version

(PHP 4 >= 4.0.2)

curl_version -- Return the current CURL version

Description

string curl_version (void);

The curl_version() function returns a string containing the current CURL version.

Zurück | Anfang | Vor
curl_close | Hoch | Cybercash Bezahl Funktionen


Cybercash Bezahl Funktionen

PHP Handbuch
Zurück Vor

XII. 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_encr — ???
cybercash_decr — ???
cybercash_base64_encode — ???
cybercash_base64_decode —
Zurück | Anfang | Vor
curl_version | Hoch | cybercash_encr


cybercash_encr

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
Cybercash Bezahl Funktionen | Hoch | cybercash_decr


cybercash_decr

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
cybercash_encr | Hoch | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 >= 4.0b4)

cybercash_base64_encode -- ???

Beschreibung

string cybercash_base64_encode (string inbuff)

Zurück | Anfang | Vor
cybercash_decr | Hoch | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 >= 4.0b4)

cybercash_base64_decode --

Beschreibung

string cybercash_base64_decode (string inbuff)

Zurück | Anfang | Vor
cybercash_base64_encode | Hoch | Character type functions


Character type functions

PHP Handbuch
Zurück Vor

XIII. Character type functions

These functions check whether a character or string falls into a certain character class according to the i current locale.

When called with an integer argument theese functions behave exactly like their C counterparts.

When called with a string argument they will check every character in the string and will only return true if every character in the string matches the requested criteria.

Passing anything else but a string or integer will return false immediately.

Warnung

These functions are new as of PHP 4.0.4 and might change their name in the near future. Suggestions are to change them to ctype_issomething() instead of ctype_somthing() or even to make them part of ext/standard and use their original C-names, although this would possibly lead to further confusion regarding the isset() vs. is_sometype() problem.

Inhaltsverzeichnis
ctype_alnum — Check for alphanumeric character(s)
ctype_alpha — Check for alphabetic character(s)
ctype_cntrl — Check for control character(s)
ctype_digit — Check for numeric character(s)
ctype_lower — Check for lowercase character(s)
ctype_graph — Check for any printable character(s) except space
ctype_print — Check for printable character(s)
ctype_punct — Check for any printable character which is not whitespace or an alphanumeric character
ctype_space — Check for whitespace character(s)
ctype_upper — Check for uppercase character(s)
ctype_xdigit — Check for character(s) representing a hexadecimal digit
Zurück | Anfang | Vor
cybercash_base64_decode | Hoch | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4)

ctype_alnum -- Check for alphanumeric character(s)

Description

bool ctype_alnum (string c)

See also setlocale().

Zurück | Anfang | Vor
Character type functions | Hoch | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4)

ctype_alpha -- Check for alphabetic character(s)

Description

bool ctype_alpha (string c)

Zurück | Anfang | Vor
ctype_alnum | Hoch | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4)

ctype_cntrl -- Check for control character(s)

Description

bool ctype_cntrl (string c)

Zurück | Anfang | Vor
ctype_alpha | Hoch | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4)

ctype_digit -- Check for numeric character(s)

Description

bool ctype_digit (string c)

Zurück | Anfang | Vor
ctype_cntrl | Hoch | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4)

ctype_lower -- Check for lowercase character(s)

Description

bool ctype_lower (string c)

Zurück | Anfang | Vor
ctype_digit | Hoch | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4)

ctype_graph -- Check for any printable character(s) except space

Description

bool ctype_graph (string c)

Zurück | Anfang | Vor
ctype_lower | Hoch | ctype_print


ctype_print

(PHP 4 >= 4.0.4)

ctype_print -- Check for printable character(s)

Description

bool ctype_print (string c)

Zurück | Anfang | Vor
ctype_graph | Hoch | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4)

ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character

Description

bool ctype_punct (string c)

Zurück | Anfang | Vor
ctype_print | Hoch | ctype_space


ctype_space

(PHP 4 >= 4.0.4)

ctype_space -- Check for whitespace character(s)

Description

bool ctype_space (string c)

Zurück | Anfang | Vor
ctype_punct | Hoch | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4)

ctype_upper -- Check for uppercase character(s)

Description

bool ctype_upper (string c)

Zurück | Anfang | Vor
ctype_space | Hoch | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4)

ctype_xdigit -- Check for character(s) representing a hexadecimal digit

Description

bool ctype_xdigit (string c)

Zurück | Anfang | Vor
ctype_upper | Hoch | Datenbank (dbm-style) Abstraktions Funktionen


Datenbank (dbm-style) Abstraktions Funktionen

PHP Handbuch
Zurück Vor

XIV. Datenbank (dbm-style) Abstraktions Funktionen

Diese Funktionen bilden die Basis für den Zugriff auf Datenbanken im Berkeley DB Stil.

Es handelt sich hierbei um eine generelle Abstraktionsschicht für verschiedenen textbasierte Datenbanken. Als solche ist der Funktionsumfang beschränkt auf einen Bruchteil des Funktionsumfangs moderner Datenbanken wie zum Beispiel Sleepycat Software's DB2. (Diese sollte nicht verwechselt werden mit IBM's DB2 Software, die über die ODBC Funktionen unterstützt wird.)

Das Verhalten verschiedener Aspekte des Systems ist abhängig von der Implementation des zugrunde liegenden Datenbanksystems. Funktionen wie zum Beispiel dba_optimize() und dba_sync() funktionieren wie angepriesen mit der einen Datenbank und versagen ihren Dienst mit Anderen.

Um Unterstützung für einen der folgenden Handler verfügbar zu machen, fügen Sie bitte den jeweils angegebenen --with Kompilerschalter in ihre PHP Konfigurationszeile ein:

  • Dbm ist der älteste und der original Typ der Datenbanken im Berkeley DB Stil. Sie sollten dieses System wenn möglich vermeiden. Wir ünterstützen nicht die Kompatibilitätsfunktionen, die in DB2 und gdbm enthalten sind, da sie nur auf Quellcode Basis kompatibel sind und nicht mit dem original dbm Format arbeiten können. (--with-dbm)

  • Ndbm ist neuer und flexibler als Dbm. Es hat jedoch immer noch die meisten Einschränkungen von Dbm und ist daher ebenfalls nicht empfehlenswert. (--with-ndbm)

  • Gdbm ist der GNU Datenbank Manager. (--with-gdbm)

  • DB2 ist Sleepycat Software's DB2. Es wird beschrieben als "Werkzeugsatz, der schnell verfügbaren eingebauten Datenbank Support sowohl für Einzel- als auch für Client/Server- Applikationen zur Verfügung stellt." (--with-db2)

  • DB3 ist Sleepycat Software's DB3. (--with-db3)

  • 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 ein konstantes System 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 vererbt alle Einschränkungen von der Datenbank Implementation, die ihm zugrunde liegt.

Alle textbasierten 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 für gewöhnlich als viertes Argument an die Funktionen dba_open() oder dba_popen() übergeben.

Sie können auf alle Einträge in einer Datenbank auf linearem Weg durch die Verwendung von dba_firstkey() und dba_nextkey() zugreifen. Während die Datenbank so durchlaufen wird, kann 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 schliessen
dba_delete — Löschen des durch key festgelegten Eintrages
dba_exists — Überprüfen, ob key existiert
dba_fetch — Daten, die durch key festgelegt sind, auslesen
dba_firstkey — Ersten Schlüssel auslesen
dba_insert — Eintrag einfügen
dba_nextkey — Nächsten Schlüssel auslesen
dba_popen — Persistene Verbindung zu einer Datenbank öffnen
dba_open — Verbindung zu einer Datenbank öffnen
dba_optimize — Optimieren einer Datenbank
dba_replace — Ersetzen oder Einfügen eines Eintrags
dba_sync — Datenbank synchronisieren
Zurück | Anfang | Vor
ctype_xdigit | Hoch | dba_close


dba_close

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_close -- Datenbank schliessen

Beschreibung

void dba_close (int handle)

Dba_close() schliesst die aufgebaute Verbindung zur Datenbank, die durch handle festgelegt wird, und gibt alle Resourcen wieder frei.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

Dba_close() besitzt keinen Rückgabewert.

Siehe auch dba_open() und dba_popen()

Zurück | Anfang | Vor
Datenbank (dbm-style) Abstraktions Funktionen | Hoch | dba_delete


dba_delete

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_delete -- Löschen des durch key festgelegten Eintrages

Beschreibung

string dba_delete (string key, int handle)

dba_delete() löscht den Eintrag, der durch key festgelegt ist, aus der Datenbank, die mit handle spezifiziert ist.

key ist der Schlüssel des Eintrags, der gelöscht wird.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

dba_delete() hat als Rückgabewert true oder false, abhängig davon, ob der Eintrag gelöscht wurde oder nicht.

Siehe auch dba_exists(),
dba_fetch(), dba_insert(),
und dba_replace().

Zurück | Anfang | Vor
dba_close | Hoch | dba_exists


dba_exists

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_exists -- Überprüfen, ob key existiert

Beschreibung

bool dba_exists (string key, int handle)

Dba_exists() überprüft, ob key in der Datenbank, die durch handle spezifiziert wird, existiert.

Key ist der Schlüssel, dessen Existenz überprüft werden soll.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

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 | Anfang | Vor
dba_delete | Hoch | dba_fetch


dba_fetch

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_fetch -- Daten, die durch key festgelegt sind, auslesen

Beschreibung

string dba_fetch (string key, int handle)

Dba_fetch() liest die Daten, die durch key festgelegt, sind aus der Datenbank, die durch handle spezifiziert ist, aus.

Key ist der Schlüssel, mit dem die Daten identifizert werden.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

Dba_fetch() hat als Rückgabewert entweder den ausgelesenen 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 | Anfang | Vor
dba_exists | Hoch | dba_firstkey


dba_firstkey

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_firstkey -- Ersten Schlüssel auslesen

Beschreibung

string dba_firstkey (int handle)

Dba_firstkey() gibt den ersten Schlüssel aus der Datenbank, die durch handle spezifiziert wird, zurück und setzt den internen Zähler zurück. Dies erlaubt eine lineare Suche durch die gesamte Datenbank.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

Dba_firstkey() hat als Rückgabewert den Schlüssel oder false, abhängig davon, ob die Aktion erfolgreich war oder fehlschlug.

Siehe auch Dba_nextkey()

Zurück | Anfang | Vor
dba_fetch | Hoch | dba_insert


dba_insert

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_insert -- Eintrag einfügen

Beschreibung

bool dba_insert (string key, string value, int handle)

dba_insert() fügt den Eintrag, der durch key und value beschrieben wird in die Datenbank, die durch handle spezifiziert wird, 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 wird.

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 | Anfang | Vor
dba_firstkey | Hoch | dba_nextkey


dba_nextkey

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_nextkey -- Nächsten Schlüssel auslesen

Beschreibung

string dba_nextkey (int handle)

dba_nextkey() gibt den nächsten Schlüssel aus der Datenbank, die durch handle spezifiziert wird, zurück und erhöht den internen Schlüsselzähler um eins.

handle ist ein Datenbankhandle das von dba_open() zurückgegeben wird.

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()

Zurück | Anfang | Vor
dba_insert | Hoch | dba_popen


dba_popen

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_popen -- Persistene Verbindung zu einer Datenbank ö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 handler.

path ist für gewöhnlich ein gültiger Pfad in Ihrem Dateisystem.

mode ist "r" für Lesezugriff, "w" für Lese- und Schreibzugriff, "c" für Lese- und Schreibzugriff und die Möglichkeit, die Datenbank zu erstellen, falls sie nicht existiert, und "n" ist für Erstellen, Bearbeiten und Lese- und Schreibzugriff.

handler ist der Name des Handlers, der für den Zugriff auf path benutzt werden soll.

dba_popen() hat als Rückgabewert eine positive Handler ID oder false, abhängig davon, ob die Verbindung hergestellt werden konnte oder nicht.

Siehe auch dba_open() dba_close()

Zurück | Anfang | Vor
dba_nextkey | Hoch | dba_open


dba_open

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_open -- Verbindung zu einer Datenbank öffnen

Description

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 für gewöhnlich ein gültiger Pfad in Ihrem Dateisystem.

mode ist "r" für Lesezugriff, "w" für Lese- und Schreibzugriff, "c" für Lese- und Schreibzugriff und die Möglichkeit, die Datenbank zu erstellen, falls sie nicht existiert, und "n" ist für Erstellen, Bearbeiten und Lese- und Schreibzugriff.

handler ist der Name des Handlers, der für den Zugriff auf path benutzt werden soll.

dba_open() hat als Rückgabewert eine positive Handler ID oder false, abhängig davon, ob die Verbindung hergestellt werden konnte oder nicht.

Siehe auch dba_popen() dba_close()

Zurück | Anfang | Vor
dba_popen | Hoch | dba_optimize


dba_optimize

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

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 wird.

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 | Anfang | Vor
dba_open | Hoch | dba_replace


dba_replace

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

dba_replace -- Ersetzen oder Einfügen eines Eintrags

Beschreibung

bool dba_replace (string key, string value, int handle)

dba_replace() ersetzt oder fügt einen Eintrag, der durch key und value beschrieben wird, in die Datenbank, die durch handle spezifiziert wird, ein.

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 wird.

dba_replace() 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(),
und dba_insert().

Zurück | Anfang | Vor
dba_optimize | Hoch | dba_sync


dba_sync

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

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 wird.

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 | Anfang | Vor
dba_replace | Hoch | Datums- und Zeit-Funktionen


Datums- und Zeit-Funktionen

PHP Handbuch
Zurück Vor

XV. Datums- und Zeit-Funktionen

Inhaltsverzeichnis
checkdate — Prüft eine gregorianische Datums- bzw. Zeitangabe 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 Zeitangabe
gmmktime — Gibt den UNIX timestamp (Zeitstempel) als GMT zurück
gmstrftime — Wandelt eine lokale Zeitangabe in GMT-Format um
localtime — Ermittelt die lokalen Zeitwerte
microtime — Gibt den aktuellen UNIX Timestamp/Zeitstempel in Mikrosekunden zurück
mktime — Gibt den UNIX Timestamp/Zeitstempel für ein Datum zurück
strftime — Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
time — Gibt den gegenwärtigen UNIX-Timestamp/Zeitstempel zurück
Strtotime — Wandelt ein beliebiges Datum (englisches Format) in einen Unix-Zeitstempel (timestamp) um
Zurück | Anfang | Vor
dba_sync | Hoch | checkdate


checkdate

(PHP 3, PHP 4 )

checkdate -- Prüft eine gregorianische Datums- bzw. Zeitangabe auf Gültigkeit

Beschreibung:

int checkdate (int Monat, int Tag, int Jahr)

Gibt true / wahr zurück, wenn das angegebene Datum gültig ist, sonst wird false / falsch zurück gegeben. Prüft die Gültigkeit der angebenen Datumswerte. Ein Datum wird als gültig angesehen, wenn

  • das Jahr zwischen 1 und 32767 (inclusive) ist,

  • der Monat zwischen 1 und 12 (inclusive) ist und

  • der Tag innerhalb der erlaubten Werte des angegebenen Monats ist. Schaltjahre werden berücksichtigt.

Zurück | Anfang | Vor
Datums- und Zeit-Funktionen | Hoch | date


date

(PHP 3, PHP 4 )

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 gegeben ist.

Die folgenden Platzhalter werden zur Formatierung benutzt:

  • a - "am" oder "pm"

  • A - "AM" oder "PM"

  • B - Swatch-Internet-Zeit

  • d - Tag des Monats, 2-stellig mit führender Null: "01" bis "31"

  • D - Tag der Woche als 3 Buchstaben, z.B. "Fri"

  • F - Monat als ganzes Wort, z.B "January"

  • g - Stunde im 12-Stunden-Format ohne führende Null: "1" bis "12"

  • G - Stunde im 24-Stunden-Format ohne führende Null: "0" bis "23"

  • h - Stunde im 12-Stunden-Format: "01" bis "12"

  • H - Stunde im 24-Stunden-Format: "00" bis "23"

  • i - Minuten: "00" bis "59"

  • I (großes 'i') - "1" bei Sommerzeit, sonst "0"

  • j - Tag des Monats ohne führende Null: "1" bis "31"

  • l - (kleines 'L') ausgeschriebener Tag der Woche, z.B. "Friday"

  • L - boolscher Wert für Schaltjahre: "0" oder "1"

  • m - Monat: "01" to "12"

  • n - Monat ohne führende Null: "1" bis "12"

  • M - Monat als 3 Buchstaben, z.B. "Jan"

  • s - Sekunden: "00" bis "59"

  • S - Anhang der englischen Aufzählung, 2 Buchstaben, z.B. "th" [bei 4 für fourth], "nd" [bei 2 für second]

  • t - Anzahl der Tage des angegebenen Monats: "28" bis "31"

  • T - Zeitzoneneinstellung des Rechners, z.B. "MDT"

  • U - Sekunden seit Beginn der UNIX-Epoche (1.1.1970)

  • w - Wochentag beginnend mit "0" (Sonntag) bis "6" (Samstag)

  • Y - Jahr als vierstellige Zahl, z.B. "1999"

  • y - Jahr als zweistellige Zahl, z.B. "99"

  • z - Tag des Jahres: "0" bis "365"

  • Z - Offset der Zeitzone gegen GTM ("-43200" bis "43200") in Minuten

Nicht definierte Zeichen werden unverändert zurück gegeben. Das "Z"-Format gibt "0" zurück beim Gebrauch von gmdate().

Beispiel 1. Date() Beispiel

print (date("l dS of F Y h:i:s A"));
print ("July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000)));

Es ist möglich, date() und mktime() gleichzeitig zu verwenden, um Datumsangaben der Zukunft/Vergangenheit herauszufinden.

Beispiel 2. Date() und mktime() Beispiel

$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);

Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten sie die Funktionen setlocale() und strftime() nutzen.

Siehe auch gmdate() und mktime().

Zurück | Anfang | Vor
checkdate | Hoch | getdate


getdate

(PHP 3, PHP 4 )

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. Die Arrayelemente sind folgende:

  • "seconds" - Sekunden

  • "minutes" - Minuten

  • "hours" - Stunden

  • "mday" - Tag des Monats

  • "wday" - numerischer Tag der Woche

  • "mon" - Monat als Zahl

  • "year" - Jahr als Zahl

  • "yday" - Tag des Jahres als Zahlwert, z.B. "299"

  • "weekday" - ausgeschriebener Wochentag, z.B. "Friday"

  • "month" - ausgeschriebener Monatsname, z.B. "January"

Zurück | Anfang | Vor
date | Hoch | gettimeofday


gettimeofday

(PHP 3>= 3.0.7, PHP 4 >= 4.0b4)

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

Zurück | Anfang | Vor
getdate | Hoch | gmdate


gmdate

(PHP 3, PHP 4 )

gmdate -- Formatiert eine GMT Zeitangabe

Beschreibung:

string gmdate (string format, int timestamp)

Entspricht der date() Funktion, ausser das 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

echo date ("M d Y H:i:s", mktime (0,0,0,1,1,1998))."\n";
echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,1998))."\n";

Siehe auch date(), mktime() und gmmktime().

Zurück | Anfang | Vor
gettimeofday | Hoch | gmmktime


gmmktime

(PHP 3, PHP 4 )

gmmktime -- Gibt den UNIX timestamp (Zeitstempel) als GMT zurück

Beschreibung:

int gmmktime (int Stunde, int Minute, int Secunde, int Monat, int Tag, int Jahr [, int is_dst])

Identisch zu mktime(). Die angegebenen Parameter werden aber als GMT-Datum/Zeit zurück gegeben.

Zurück | Anfang | Vor
gmdate | Hoch | gmstrftime


gmstrftime

(PHP 3>= 3.0.12, PHP 4 >= 4.0RC2)

gmstrftime -- Wandelt eine lokale Zeitangabe in GMT-Format um

Beschreibung:

string gmstrftime (string format, int timestamp)

Anmerkung: Erst ab Version 3.0.12

Bewirkt das gleiche wie strftime() mit dem Unterschied, dass die GMT-Zeit zurück gegeben wird. In Deutschland (GMT + 01:00) wird im folgenden Beispiel bei strftime "Dec 31 1998 00:00:00", bei gmstrftime dagegen "Dec 31 1998 23:00:00" ausgegeben.

Beispiel 1. Gmstrftime() Beispiel

setlocale ('LC_TIME', 'ge');
echo strftime ("%b %d %Y %H:%M:%S", mktime(0,0,0,12,31,98))."\n";
echo gmstrftime ("%b %d %Y %H:%M:%S", mktime(0,0,0,12,31,98))."\n";

Siehe auch strftime().

Zurück | Anfang | Vor
gmmktime | Hoch | localtime


localtime

(PHP 4 >= 4.0RC2)

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). Fehlt dieser, wird die aktuelle Zeit genommen. 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 er 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

  • "tm_year" - Jahr (nicht Y2K sicher)

  • "tm_wday" - Tag der Woche

  • "tm_yday" - Tag des Jahres

  • "tm_isdst" - für das Datum ist die Sommerzeit zu berücksichtigen

Zurück | Anfang | Vor
gmstrftime | Hoch | microtime


microtime

(PHP 3, PHP 4 )

microtime -- Gibt den aktuellen UNIX Timestamp/Zeitstempel in Mikrosekunden zurück

Beschreibung:

string microtime(void);

Gibt die Zeichenkette "msec sec" zurück, wobei sec die aktuelle Zeit ist, ausgedrückt als Anzahl der Sekunden seit Beginn der UNIX-Epoche (0:00:00 January 1, 1970 GMT). Msec stellt den Mikrosekunden-Teil dar. Diese Funktion ist nur auf Systemen möglich, die den Systemaufruf gettimeofday() unterstützen.

Siehe auch time().

Zurück | Anfang | Vor
localtime | Hoch | mktime


mktime

(PHP 3, PHP 4 )

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 (01.01.1970) und der angegebenen Zeit enthält.

Einzelne Argumente können von rechts nach links weggelassen werden. Sie werden dann ersetzt mit den Werten der lokalen Systemzeit bzw. des lokalen Systemdatums.

is_dst kann bei Sommerzeit auf 1 gesetzt werden. 0 bedeutet Winter-/Normalzeit, -1 (Vorgabewert) heisst, dass nicht bekannt ist, ob Sommer- oder Winterzeit herrscht.

Anmerkung: is_dst wurde in 3.0.10. eingeführt.

Mktime() ist hilfreich bei Datumsberechnungen und -überprüfungen, z.B. wird versucht, automatisch das korrekte Datum zu berechnen. So wird in den folgenden Beispielen immer die Zeichenkette "Jan-01-1998" ausgegeben.

Beispiel 1. mktime() Beispiel

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));
year darf auch zweistellig 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, liegt der gültige Bereich für year zwischen 1902 und 2037).

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

$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 | Anfang | Vor
microtime | Hoch | strftime


strftime

(PHP 3, PHP 4 )

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. 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 00 bis 31)

  • %D - so wie %m/%d/%y

  • %e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt (Wertebereich ´ 0´ bis ´31´)

  • %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 in "am"- oder "pm"-Formatierung

  • %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

  • %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)

  • %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

  • %Z - Zeitzone

  • %% - ein %-Zeichen

Beispiel 1. Strftime() Beispiel

setlocale ("LC_TIME", "C");
print (strftime ("%A in Finnland ist "));
setlocale ("LC_TIME", "fi_FI");
print (strftime ("%A, in Frankreich "));
setlocale ("LC_TIME", "fr_CA");
print (strftime ("%A und in Deutschland "));
setlocale ("LC_TIME", "de_DE");
print (strftime ("%A.\n"));
Diese Beispiel funktioniert, wenn sie die jeweilige Umgebung in ihrem System eingestellt haben.

Siehe auch setlocale() und mktime().

Zurück | Anfang | Vor
mktime | Hoch | time


time

(PHP 3, PHP 4 )

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().

Zurück | Anfang | Vor
strftime | Hoch | Strtotime


Strtotime

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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, dieses in einen UNIX-Timestamp umzusetzen.

Beispiel 1. Strtotime()-Beispiele:

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";

Zurück | Anfang | Vor
time | Hoch | dBase Funktionen


dBase Funktionen

PHP Handbuch
Zurück Vor

XVI. 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_create — Erzeugt eine dBase-Datenbank
dbase_open — Öffnet eine dBase-Datenbank
dbase_close — Schließt eine dBase-Datenbank
dbase_pack — Entfernt die als gelöscht markierten Datensätze aus der Datenbank
dbase_add_record — Hängt einen neuen Datensatz an eine dBase-Datenbank an
dbase_replace_record — Ersetzt einen Datensatz in einer dBase-Datenbank
dbase_delete_record — Markiert einen Datensatz als gelöscht
dbase_get_record — Liest einen Datensatz aus einer dBase-Datenbank
dbase_get_record_with_names — Gibt einen Datensatz einer dBase-Datenbank als assoziatives Array zurück
dbase_numfields — Stellt fest, wieviele Felder eine dBase-Datenbank hat
dbase_numrecords — Ermittelt die Anzahl der Datensätze einer dBase-Datenbank
Zurück | Anfang | Vor
Strtotime | Hoch | dbase_create


dbase_create

(PHP 3, PHP 4 )

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 | Anfang | Vor
dBase Funktionen | Hoch | dbase_open


dbase_open

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_create | Hoch | dbase_close


dbase_close

(PHP 3, PHP 4 )

dbase_close -- Schließt eine dBase-Datenbank

Beschreibung:

bool dbase_close (int dbase_identifier)

Schließt die durch dbase_identifier angegebene Datenbank.

Zurück | Anfang | Vor
dbase_open | Hoch | dbase_pack


dbase_pack

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_close | Hoch | dbase_add_record


dbase_add_record

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_pack | Hoch | dbase_replace_record


dbase_replace_record

(PHP 3>= 3.0.11, PHP 4 )

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 | Anfang | Vor
dbase_add_record | Hoch | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_replace_record | Hoch | dbase_get_record


dbase_get_record

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_delete_record | Hoch | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
dbase_get_record | Hoch | dbase_numfields


dbase_numfields

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_get_record_with_names | Hoch | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4 )

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 | Anfang | Vor
dbase_numfields | Hoch | DBM Datenbankfunktionen


DBM Datenbankfunktionen

PHP Handbuch
Zurück Vor

XVII. 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
dbmopen — Öffnen einer DBM Datenbank
dbmclose — Schließen einer 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.
dbminsert — Schreibt einen Datensatz mit dem angegebenen Schlüssel in die DBM Datenbank.
dbmreplace — Ersetzt einen Datensatz mit dem angegebenen Schlüssel in der DBM Datenbank.
dbmdelete — Löscht einen Datensatz mit dem angegebenen Schlüssel aus der DBM Datenbank.
dbmfirstkey — Gibt den ersten Schlüssel der DBM Datenbank zurück.
dbmnextkey — Stellt den nächsten Schlüssel aus den Datenbank zur Verfügung.
dblist — Liefert eine Beschreibung, welches DBM-Format verwendet wird.
Zurück | Anfang | Vor
dbase_numrecords | Hoch | 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" gö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 | Anfang | Vor
DBM Datenbankfunktionen | Hoch | 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 | Anfang | Vor
dbmopen | Hoch | 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 | Anfang | Vor
dbmclose | Hoch | 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 | Anfang | Vor
dbmexists | Hoch | 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 | Anfang | Vor
dbmfetch | Hoch | 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 | Anfang | Vor
dbminsert | Hoch | 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 | Anfang | Vor
dbmreplace | Hoch | 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 | Anfang | Vor
dbmdelete | Hoch | 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 | Anfang | Vor
dbmfirstkey | Hoch | dblist


dblist

(PHP 3, PHP 4 )

dblist -- Liefert eine Beschreibung, welches DBM-Format verwendet wird.

Beschreibung

string dblist (void)

Zurück | Anfang | Vor
dbmnextkey | Hoch | Verzeichnis-Funktionen


Verzeichnis-Funktionen

PHP Handbuch
Zurück Vor

XVIII. Verzeichnis-Funktionen

Inhaltsverzeichnis
chdir — Wechseln des Verzeichnisses
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
Zurück | Anfang | Vor
dblist | Hoch | chdir


chdir

(PHP 3, PHP 4 )

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 | Anfang | Vor
Verzeichnis-Funktionen | Hoch | dir


dir

(PHP 3, PHP 4 )

dir -- Verzeichnis-Klasse

Beschreibung:

new dir (string directory)

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 Directory-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.

Beispiel 1. Dir()-Beispiel:

$d = dir("/etc");
echo "Handle: ".$d->handle."<br>\n";
echo "Path: ".$d->path."<br>\n";
while($entry=$d->read()) {
    echo $entry."<br>\n";
}
$d->close();

Zurück | Anfang | Vor
chdir | Hoch | closedir


closedir

(PHP 3, PHP 4 )

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 | Anfang | Vor
dir | Hoch | getcwd


getcwd

(PHP 4 >= 4.0b4)

getcwd -- Ermittelt das aktuelle Arbeitsverzeichnis

Beschreibung:

string getcwd(void);

Gibt das gegenwärtige Arbeitsverzeichnis zurück.

Zurück | Anfang | Vor
closedir | Hoch | opendir


opendir

(PHP 3, PHP 4 )

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 | Anfang | Vor
getcwd | Hoch | readdir


readdir

(PHP 3, PHP 4 )

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 | Anfang | Vor
opendir | Hoch | rewinddir


rewinddir

(PHP 3, PHP 4 )

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 | Anfang | Vor
readdir | Hoch | DOM XML Funktionen


DOM XML Funktionen

PHP Handbuch
Zurück Vor

XIX. DOM XML Funktionen

Diese Funktionen sind nur verfügbar, wenn PHP mit der Option --with-dom=[DIR] konfiguriert und kompiliert wurde. Hierfür wird mindestens libxml-2.0.0 benötigt (die Beta-Version reicht nicht). Diese Funktionen wurden in PHP4 eingeführt.

Dieses Modul definiert die folgenden Konstanten:

Tabelle 1. XML Konstanten

Konstante | Wert | Beschreibung
XML_ELEMENT_NODE | 1 |
XML_ATTRIBUTE_NODE | 2 |
XML_TEXT_NODE | 3 |
XML_CDATA_SECTION_NODE | 4 |
XML_ENTITY_REF_NODE | 5 |
XML_ENTITY_NODE | 6 |
XML_PI_NODE | 7 |
XML_COMMENT_NODE | 8 |
XML_DOCUMENT_NODE | 9 |
XML_DOCUMENT_TYPE_NODE | 10 |
XML_DOCUMENT_FRAG_NODE | 11 |
XML_NOTATION_NODE | 12 |
XML_GLOBAL_NAMESPACE | 1 |
XML_LOCAL_NAMESPACE | 2 |

Dieses Modul definiert eine Reihe von Klassen. Die DOM XML Funktionen geben einen Parsebaum eines XML Dokumentes zurück, dessen Elemente jeweils einer der nachstehenden Klassen angehören.

Inhaltsverzeichnis
xmldoc — Erzeugt ein Objekt mit der DOM Repräsentation eines XML Dokumentes
xmldocfile — Erzeugt ein Objekt mit der DOM Repräsentation einer XML Datei
xmltree — Erzeugt eine Baum-Repräsentation eines XML Dokumentes
Zurück | Anfang | Vor
rewinddir | Hoch | xmldoc


xmldoc

(PHP 4 >= 4.0b4)

xmldoc -- Erzeugt ein Objekt mit der DOM Repräsentation eines XML Dokumentes

Beschreibung

object xmldoc (string str)

Die Funktion verarbeitet das XML Dokument in str und liefert eine Instanz der Klasse "Dom document", mit den Eigenschaften "doc" (resource), "version" (string) und "type" (long).

Zurück | Anfang | Vor
DOM XML Funktionen | Hoch | xmldocfile


xmldocfile

(PHP 4 >= 4.0b4)

xmldocfile -- Erzeugt ein Objekt mit der DOM Repräsentation einer XML Datei

Beschreibung

object xmldocfile (string filename)

Die Funktion liest die XML Datei in filename und liefert eine Instanz der Klasse "Dom document", mit den Eigenschaften "doc" (resource), "version" (string) und "type" (long).

Zurück | Anfang | Vor
xmldoc | Hoch | xmltree


xmltree

(PHP 4 >= 4.0b4)

xmltree -- Erzeugt eine Baum-Repräsentation eines XML Dokumentes

Beschreibung

object xmltree (string str)

Die Funktion verarbeitet das XML Dokument in str und liefert einen Baum von PHP Objekten.

Zurück | Anfang | Vor
xmldocfile | Hoch | Error Handling and Logging Functions


Error Handling and Logging Functions

PHP Handbuch
Zurück Vor

XX. Error Handling and Logging Functions

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.

Inhaltsverzeichnis
error_log — Sendet eine Fehlermeldung
error_reporting — Gibt an, wie PHP-Fehlermeldungen gezeigt werden
restore_error_handler — Restores the previous error handler function
set_error_handler — Sets a user-defined error handler function.
trigger_error — Generates a user-level error/warning/notice message
user_error — Generates a user-level error/warning/notice message
Zurück | Anfang | Vor
xmltree | Hoch | error_log


error_log

(PHP 3, PHP 4 )

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() Typem

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 amnngegeben wurde. Dies ist der einzige Punkt, bei dem der vierte Parameter extra_headers verwendet wird. Die Nachricht verwendet die selbe 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

// Server sendet eine Nachricht an den Administrator,

// daß 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, daß FOO langsam ausgeht

if (!($foo = allocate_new_foo()) {

    error_log ("Big trouble, we're all out of FOOs!", 1,

               "operator@mydomain.com");

}

// AndereMö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 | Anfang | Vor
Error Handling and Logging Functions | Hoch | error_reporting


error_reporting

(PHP 3, PHP 4 )

error_reporting -- Gibt an, wie PHP-Fehlermeldungen gezeigt werden

Beschreibung

int error_reporting ([int level])

Setzt die Stufe von PHP's Fehlermeldungen. Diese Stufe ist der Fehlermeldung hängt von den folgenden Werten ab. (Hinter den folgenden Links verbirgt sich die Bedeutung der internen Werte):

Tabelle 1. Error_reporting() Werte

Werte | interne Namen
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING

Zurück | Anfang | Vor
error_log | Hoch | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1)

restore_error_handler -- Restores the previous error handler function

Description

void restore_error_handler (void)

Used after changing the error handler function using set_error_handler(), to revert to the previous error handler (which could be the built-in or a user defined function)

See also error_reporting(),
set_error_handler(),
trigger_error(), user_error()

Zurück | Anfang | Vor
error_reporting | Hoch | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1)

set_error_handler -- Sets a user-defined error handler function.

Description

string set_error_handler (string error_handler)

Sets a user function (error_handler) to handle errors in a script. Returns the previously defined error handler (if any), or false on error. This function can be used for defining your own way of handling errors during runtime, for example in applications in which you need to do cleanup of data/files when a critical error happens, or when you need to trigger an error under certain conditions (using trigger_error())

The user function needs to accept 2 parameters: the error code, and a string describing the error. The example below shows the handling of internal execptions by triggering errors and handling them with a user defined function:

Beispiel 1. Error handling with set_error_handler() and trigger_error()

<?php

// redefine the user error constants - PHP4 only
define(FATAL,E_USER_ERROR);
define(ERROR,E_USER_WARNING);
define(WARNING,E_USER_NOTICE);

// set the error reporting level for this script
error_reporting(FATAL + ERROR + WARNING);

// error handler function
function myErrorHandler ($errno, $errstr) {
    switch ($errno) {
    case FATAL:
    echo "<b>FATAL</b> [$errno] $errstr<br>\n";
    echo "  Fatal error in line ".__LINE__." of file ".__FILE__;
    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;
    }
}

// function to test the error handling
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;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3,"foo",5.5,43.3,21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array",2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>
And when you run this sample script, the output will be

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 16 of file trigger_error.php, PHP 4.0.1pl2 (Linux)<br>
Aborting...<br>

See also error_reporting(),
restore_error_handler(),
trigger_error(), user_error()

Zurück | Anfang | Vor
restore_error_handler | Hoch | trigger_error


trigger_error

(PHP 4 >= 4.0.1)

trigger_error -- Generates a user-level error/warning/notice message

Description

void trigger_error (string error_msg [, int error_type])

Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (set_error_handler()). This function is useful when you need to generate a particular response to an exception at runtime. For example:

if (assert($divisor == 0))
   trigger_error("Cannot divide by zero", E_USER_ERROR);

Anmerkung: See set_error_handler() for a more extensive example.

See also error_reporting(),
set_error_handler(),
restore_error_handler(),
user_error()

Zurück | Anfang | Vor
set_error_handler | Hoch | user_error


user_error

(PHP 4 >= 4.0RC2)

user_error -- Generates a user-level error/warning/notice message

Description

void user_error (string error_msg [, int error_type])

This is an alias for the function trigger_error().

See also error_reporting(),
set_error_handler(),
restore_error_handler(),
trigger_error()

Zurück | Anfang | Vor
trigger_error | Hoch | filePro Funktionen


filePro Funktionen

PHP Handbuch
Zurück Vor

XXI. 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 — lesen und überprüfen der Kartendatei
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_fieldcount — bestimmt, wie viele Felder sich in einer filePro Datenbank befinden
filepro_rowcount — bestimmt, wie viele Reihen sich in einer filePro Datenbank befinden
Zurück | Anfang | Vor
user_error | Hoch | filepro


filepro

(PHP 3, PHP 4 )

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 | Anfang | Vor
filePro Funktionen | Hoch | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro | Hoch | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro_fieldname | Hoch | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro_fieldtype | Hoch | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro_fieldwidth | Hoch | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro_retrieve | Hoch | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4 )

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 | Anfang | Vor
filepro_fieldcount | Hoch | Funktionen des Dateisystems


Funktionen des Dateisystems

PHP Handbuch
Zurück Vor

XXII. Funktionen des Dateisystems

Inhaltsverzeichnis
basename — Gibt den Namen einer Datei aus einer vollständigen Pfadangabe zurück
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 — "Dummy Handbuch Eintrag"
dirname — Extrahiert den Verzeichnis-Namen aus einer vollständigen Pfadangabe
diskfreespace — Gibt den freien Speicherplatz in einem Verzeichnis zurück
fclose — Schließt einen offenen Dateizeiger
feof — Prüft, ob der Dateizeiger am Ende der Datei steht
fgetc — Liest das Zeichen, auf welches der Dateizeiger zeigt
fgetcsv — Liest eine Zeile von der Position des Dateizeigers und überprüft diese auf Komma-Separierte-Werte (CSV)
fgets — Liest eine Zeile von der Position des Dateizeigers
fgetss — Liest eine Zeile von der aktuellen Position des Dateizeigers und entfernt HTML und PHP-Tags.
file — Liest eine Datei komplett in einen Array
file_exists — Überprüft, ob eine Datei existiert
fileatime — Gibt Datum und Uhrzeit des letzten Zugriffs auf eine Datei zurück
filectime — Gibt Datum und Uhrzeit der letzten Änderung des Dateizeigers Inode zurück
filegroup — Gibt die Gruppenzugehörigkeit einer Datei zurück
fileinode — Gibt Inode-Nummer einer Datei aus
filemtime — Gibt Datum und Uhrzeit der letzten Dateiänderung aus
fileowner — Gibt den Dateieigentümer aus
fileperms — Gibt die Zugriffsrechte einer Datei aus
filesize — Gibt die Größe einer Datei aus
filetype — Gibt den Typ einer Datei zurück
flock — Portables Datei-Verriegelungs-Verfahren
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är-Dateien aus einer Datei
fseek — Positioniert den Dateizeiger um einen Offset 'offset' vor oder zurück
ftell — Ermittelt die aktuelle Position des Dateizeigers
fwrite — Schreibt Binärdaten in eine Datei
set_file_buffer — Setzt die Dateipufferung für einen gegebenen Dateizeiger
is_dir — Ermittelt, ob der gegebene Dateiname ein Verzeichnis ist
is_executable — Ermittelt, ob eine Datei ausführbar ist
is_file — Ermittelt, ob der Dateiname eine reguläre Datei ist
is_link — Ermittelt, ob der Dateiname ein synmbolischer Link ist
is_readable — Ermittelt ob eine Datei lesbar ist
is_writeable — Ermittelt, ob in eine Datei geschrieben werden kann
link — Erzeugt einen absoluten Link
linkinfo — Ermittelt Informationen über einen Link
mkdir — Erstellt ein Verzeichnis
pclose — Schließt einen Prozess-Dateizeiger
popen — Öffnet einen Prozesszeiger
readfile — Gibt eine Datei aus
readlink — Gibt das Ziel eines symbolischen Links zurück
rename — Benennt eine Datei um
rewind — Setzt den Dateizeiger auf das erste Byte der Datei
rmdir — Löscht ein Verzeichnis
stat — Ermittelt diverse Informationen über eine Datei
lstat — Ermittelt Informationen über einen symbolischen Link.
realpath — Return canonicalized absolute pathname
symlink — Erzeugt einen symbolischen Link
tempnam — Erzeugt einen eindeutigen Dateinamen
tmpfile — Legt eine temporäre Datei an
touch — Setzt das Datum der letzten Änderung einer Datei
umask — Ändert die aktuelle umask (Zugriffsrechte)
unlink — Löscht eine Datei
Zurück | Anfang | Vor
filepro_rowcount | Hoch | basename


basename

(PHP 3, PHP 4 )

basename -- Gibt den Namen einer Datei aus einer vollständigen Pfadangabe zurück

Beschreibung

string basename (string path)

Diese Funktion extrahiert aus einer vollständigen Pfadangabe den Namen der Datei und gibt diesen 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. Basename() Beispiel

$path = "/home/httpd/html/index.php3";
$file = basename($path); // $file enthält den Wert "index.php3"

Siehe auch dirname().

Zurück | Anfang | Vor
Funktionen des Dateisystems | Hoch | chgrp


chgrp

(PHP 3, PHP 4 )

chgrp -- Wechselt die Gruppenzugehörigkeit einer Datei

Beschreibung

int chgrp (string filename, mixed group)

Weist einer Datei einer Benutzergruppe zu. 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, andernfalls FALSE.

Anmerkung: Unter Windows-Systemen bleibt diese Funktion ohne Effekt.

Siehe auch chown() und chmod().

Zurück | Anfang | Vor
basename | Hoch | chmod


chmod

(PHP 3, PHP 4 )

chmod -- Ändert die Zugriffsrechte einer Datei

Beschreibung

int 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, das 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:

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

Gibt TRUE bei Erfolg zurück, andernfalls FALSE.

Siehe auch chown() und chgrp().

Anmerkung: Diese Funktion bleibt unter Windows-Systemen ohne Effekt.

Zurück | Anfang | Vor
chgrp | Hoch | chown


chown

(PHP 3, PHP 4 )

chown -- Ändert den Eigentümer einer Datei

Beschreibung

int 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, andernfalls FALSE.

Anmerkung: Unter Windows bleibt diese Funktion ohne Effekt.

Siehe auch chown() und chmod().

Zurück | Anfang | Vor
chmod | Hoch | clearstatcache


clearstatcache

(PHP 3, PHP 4 )

clearstatcache -- Löscht den Status Cache

Beschreibung

void clearstatcache(void);

clearstatcache() löscht den Zwischenspeicher mit den Dateistatuswerten. Die Systemaufrufe stat oder lstat sind auf den meisten Systemen sehr "teure" Aufrufe. Daher wird das Ergebnis des letzten Aufrufs von einer der unten aufgeführten Funktionen für die nächste Benutzung eines ähnlichen Aufrufs mit dem gleichen Dateinamen gespeichert. Wenn Sie einen neuen Status-Check erzwingen wollen, z.B. wenn die Datei in der Zwischenzeit oftmals aufgerufen wurde, verändert oder verschwunden ist, können Sie diese Funktion dazu benutzen, das Ergebnis des letzten Aufrufes aus dem Speicher zu leeren.

Dieser Wert wird nur für die Zeit eines einzelnen Requests zwischengespeichert.

Folgende Funktionen betreffen den Dateistatus:
stat(), lstat(),
file_exists(),
is_writeable(),
is_readable(),
is_executable(), is_file(),
is_dir(), is_link(),
filectime(), fileatime(),
filemtime(), fileinode(),
filegroup(), fileowner(),
filesize(), filetype(), and
fileperms().

Zurück | Anfang | Vor
chown | Hoch | copy


copy

(PHP 3, PHP 4 )

copy -- Kopiert eine Datei

Beschreibung

int copy (string source, string dest)

Die Funktion copy() kopiert eine Datei. Sie gibt TRUE zurück, wenn der Kopiervorgang erfolgreich war, andernfalls FALSE.

Beispiel 1. Copy() Beispiel

if (!copy ($file, $file.'.bak')) {
    print ("failed to copy $file...<br>\n");
}

Siehe auch: rename().

Zurück | Anfang | Vor
clearstatcache | Hoch | delete


delete

(PHP 4 CVS only)

delete -- "Dummy Handbuch Eintrag"

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 | Anfang | Vor
copy | Hoch | dirname


dirname

(PHP 3, PHP 4 )

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() Beispiel

$path = "/etc/passwd";
$file = dirname ($path); // $file enthält den Wert "/etc"

Siehe auch basename().

Zurück | Anfang | Vor
delete | Hoch | diskfreespace


diskfreespace

(PHP 3>= 3.0.7, PHP 4 >= 4.0b4)

diskfreespace -- Gibt den freien Speicherplatz in einem Verzeichnis zurück

Beschreibung

float diskfreespace (string directory)

Diese Funktion gibt den freien Speicherplatz eines Verzeichnisses in Byte zurück.

Beispiel 1. diskfreespace() Beispiel

$df = diskfreespace("/"); // $df hält die Anzahl an freien Bytes
                          // im Verzeichnis  "/"

Zurück | Anfang | Vor
dirname | Hoch | fclose


fclose

(PHP 3, PHP 4 )

fclose -- Schließt einen offenen Dateizeiger

Beschreibung

int fclose (int fp)

Die Datei, auf die der Dateizeiger fp zeigt wird geschlossen.

Gibt bei erfolgreichem Schließen der Datei TRUE, andernfalls FALSE zurück.

Der Datei-Zeiger 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 | Anfang | Vor
diskfreespace | Hoch | feof


feof

(PHP 3, PHP 4 )

feof -- Prüft, ob der Dateizeiger am Ende der Datei steht

Beschreibung

int feof (int fp)

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 | Anfang | Vor
fclose | Hoch | fgetc


fgetc

(PHP 3, PHP 4 )

fgetc -- Liest das Zeichen, auf welches der Dateizeiger zeigt

Beschreibung

string fgetc (int fp)

Gibt einen String zurück, der ein einzelnes Zeichen von der aktuellen Position des Dateizeigers fp 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.

Siehe auch fread(),
fopen(), popen(),
fsockopen() und fgets().

Zurück | Anfang | Vor
feof | Hoch | fgetcsv


fgetcsv

(PHP 3>= 3.0.8, PHP 4 )

fgetcsv -- Liest eine Zeile von der Position des Dateizeigers und überprüft diese auf Komma-Separierte-Werte (CSV)

Beschreibung

array fgetcsv (int fp, int length [, string Trennzeichen (Delimiter)])

Die Funktion fgetcsv() handelt ähnlich der Funktion fgets(), bis auf den Umstand, das fgetcsv() die eingelesene Zeile auf Kommaseparierte Felder hin überprüft. Das Ergebnis wird als Array zurückgegeben. Als Trennzeichen (Delimiter) wird - wenn kein anderes Trennzeichen im dritten optionalen Parameter angegeben wird - das Komma benutzt.

Der Dateizeiger fp muss gültig 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 FALSE am Dateiende und bei Lesefehlern zurück.

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. Fgetcsv() Beispiel - Lesen und Ausgabe des Inhalts einer CSV-Datei

$row = 1;                                  // Anzahl der Arrays
$fp = fopen ("test.csv","r");              // Datei wird zum Lesen
                                           // geöffnet
while ($data = fgetcsv ($fp, 1000, ",")) { // Daten werden aus der Datei
                                           // in einen Array $data gelesen
    $num = count ($data);                  // Felder im Array $data
                                           // werden gezählt
    print "<p> $num fields in line $row: <br>";
    $row++;                                // Anzahl der Arrays wird
                                           // inkrementiert
    for ($c=0; $c<$num; $c++) {         // FOR-Schleife, um Felder
        print $data[$c] . "<br>";    // des Arrays auszugeben
    }
}
fclose ($fp);

Zurück | Anfang | Vor
fgetc | Hoch | fgets


fgets

(PHP 3, PHP 4 )

fgets -- Liest eine Zeile von der Position des Dateizeigers

Beschreibung

string fgets (int fp, int length)

Gibt eine Zeile zurück mit einer in length definierten Länge -1 Byte, welche aus der Datei von der aktuellen Position des Dateizeigers fp aus ausgelesen wird. Die Zeile endet an einem Zeilenumbruch, EOF (Ende der Datei) oder bei lenght Zeichen (Je nachdem, was eher auftritt).

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

$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof($fd)) {
    $buffer = fgets($fd, 4096);
    echo $buffer;
}
fclose ($fd);

Siehe auch fread(),
fopen(), popen(),
fgetc() und fsockopen().

Zurück | Anfang | Vor
fgetcsv | Hoch | fgetss


fgetss

(PHP 3, PHP 4 )

fgetss -- Liest eine Zeile von der aktuellen Position des Dateizeigers und entfernt HTML und PHP-Tags.

Beschreibung

string fgetss (int fp, int length [, string allowable_tags])

Diese Funktion ist identisch mit der Funktion fgets(), ausser das 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 hinzugefügt, PHP4B3.

Siehe auch fgets(),
fopen(), fsockopen(),
popen() und strip_tags().

Zurück | Anfang | Vor
fgets | Hoch | file


file

(PHP 3, PHP 4 )

file -- Liest eine Datei komplett in einen Array

Beschreibung

array file (string filename [, int use_include_path])

Die Funktion file() ist identisch mit der Funktion readfile(), bis auf den Umstand, das die eingelesene Datei als Array zurückgegeben wird. Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei. Der Zeilenumbruch bleibt erhalten.

Optional kann der zweiter Parameter benutzt und auf '1' gesetzt werden, wenn in dem include_path ebenfalls nach der Datei gesucht werden soll.

<?php
// liest eine Webseite in einen Array und gibt das Ergebnis aus
$fcontents = file ('http://www.php.net');
while (list ($line_num, $line) = each ($fcontents)) {
    echo "<b>Line $line_num:</b>" . htmlspecialchars($line) . "<br>\n";
}

// liefert eine Webseite in einen String
$fcontents = join ('', file ('http://www.php.net'));
?>

Siehe auch readfile(), fopen(), and popen().

Zurück | Anfang | Vor
fgetss | Hoch | file_exists


file_exists

(PHP 3, PHP 4 )

file_exists -- Überprüft, ob eine Datei existiert

Beschreibung

int file_exists (string filename)

Gibt TRUE zurück, wenn die mit filename spezifizierte Datei existiert, andernfalls FALSE.

File_exists() funktioniert nur mit lokalen Dateien. Die Datei, deren Existenz überprüft werden soll muss über das Dateisystem des Servers erreichbar sein.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
file | Hoch | fileatime


fileatime

(PHP 3, PHP 4 )

fileatime -- Gibt Datum und Uhrzeit des letzten Zugriffs auf eine Datei zurück

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.

Zurück | Anfang | Vor
file_exists | Hoch | filectime


filectime

(PHP 3, PHP 4 )

filectime -- Gibt Datum und Uhrzeit der letzten Änderung des Dateizeigers Inode zurück

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.

Zurück | Anfang | Vor
fileatime | Hoch | filegroup


filegroup

(PHP 3, PHP 4 )

filegroup -- Gibt die Gruppenzugehörigkeit einer Datei zurück

Beschreibung

int filegroup (string filename)

Gibt die Gruppen ID des Besitzers 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 hat unter Windows-Systemen keinen Effekt.

Zurück | Anfang | Vor
filectime | Hoch | fileinode


fileinode

(PHP 3, PHP 4 )

fileinode -- Gibt Inode-Nummer einer Datei aus

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.

Anmerkung: Diese Funktion hat unter Windows-Systemen keinen Effekt.

Zurück | Anfang | Vor
filegroup | Hoch | filemtime


filemtime

(PHP 3, PHP 4 )

filemtime -- Gibt Datum und Uhrzeit der letzten Dateiänderung aus

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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
fileinode | Hoch | fileowner


fileowner

(PHP 3, PHP 4 )

fileowner -- Gibt den Dateieigentümer aus

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.

Anmerkung: Diese Funktion hat unter Windows keinen Effekt.

Zurück | Anfang | Vor
filemtime | Hoch | fileperms


fileperms

(PHP 3, PHP 4 )

fileperms -- Gibt die Zugriffsrechte einer Datei aus

Beschreibung

int fileperms (string filename)

Gibt die Zugriffsrechte einer Datei zurück, oder FALSE wenn ein Fehler auftrat.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
fileowner | Hoch | filesize


filesize

(PHP 3, PHP 4 )

filesize -- Gibt die Größe einer Datei aus

Beschreibung

int filesize (string filename)

Gibt die Größe einer Datei zurück, oder FALSE wenn ein Fehler auftrat.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
fileperms | Hoch | filetype


filetype

(PHP 3, PHP 4 )

filetype -- Gibt den Typ einer Datei zurück

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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
filesize | Hoch | flock


flock

(PHP 3>= 3.0.7, PHP 4 )

flock -- Portables Datei-Verriegelungs-Verfahren

Beschreibung

bool flock (int fp, int operation)

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 fp 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, setzten Sie operation auf 1.

  • Um eine exklusive, nur schreibende Verriegelung zu erhalten, setzen Sie operation auf 2.

  • Um eine Verriegelung freizugeben (lesend oder schreibend), setzten Sie operation auf 3.

  • Wenn Sie Zugriffe während der Verriegelung durch flock() erlauben wollen, fügen Sie 4 zu operation hinzu.

flock() erlaubt es Ihnen ein einfaches Leser/Schreiber Modell zu erstellen, welches auf fast jedem Betriebsystem benutzt werden kann (UNICES- und Windows- Systeme).

flock() gibt TRUE bei Erfolg, FALSE wenn ein Fehler auftrat (z.B. wenn eine Verriegelung nicht erstellt werden konnte) zurück.

Zurück | Anfang | Vor
filetype | Hoch | fopen


fopen

(PHP 3, PHP 4 )

fopen -- Öffnet eine Datei oder URL

Beschreibung

int fopen (string filename, string mode [, int use_include_path])

Wenn filename mit "http://" (nicht case sensitive) beginnt, wird zu dem spezifiziertem Server eine HTTP 1.0 Connection geöffnet und ein Dateizeiger auf den Anfang des Textes der Antwort zurückgegeben. Ein 'Host:' header wird mit der Anfrage geschickt, um namens-basierte Virtual Hosts zu verarbeiten.

Weiterleitungen (HTTP Redirects) werden nicht unterstützt, die Datei muss daher vollständig und mit abschließendem "/" beschrieben werden.

Wenn filename mit "ftp://" (nicht case sensitive) beginnt, wird eine ftp-Connection zu dem spezifiziertem Server geöffnet und ein Zeiger auf die angeforderte Datei zurückgegeben. Wenn der Server keinen passiven FTP-Modus unterstützt, wird diese Methode fehlschlagen. Sie können Dateien entweder zum Schreiben oder zum Lesen öffnen, jedoch nicht für beides gleichzeitig.

Wenn filename "php://stdin", "php://stdout", oder "php://stderr" ist, wird der korrespondierende stdio stream geöffnet (Feature wurde in Version 3.0.13 eingeführt, in früheren Versionen muss der Dateiname wie z.B. "/dev/stdin" oder "/dev/fd/0" benutzt werden, um auf die stdio streams zuzugreifen).

Wenn filename mit irgendetwas anderem beginnt, wird die Datei vom lokalen Dateisystem geöffnet und ein Dateizeiger auf die geöffnete Datei zurückgegeben.

Wenn das Öffnen scheitert, gibt die Funktion FALSE zurück.

mode kann einen der folgenden Werte einnehmen:

  • '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.

Zusätzlich kann mode der Buchstabe 'b' hinzugefügt werden, der die Behandlung von Binär-Dateien erlaubt. Dieses ist sinnvoll auf Systemen, welche zwischen Binär- und Text-Dateien unterscheiden. Wenn das Feature nicht gebraucht wird, wird es einfach ignoriert.

Sie können optional ein dritten Parameter benutzen und diesen auf '1' setzten, wenn Sie auch im include_path nach der Datei suchen möchten.

Beispiel 1. fopen() Beispiel

$fp = fopen ("/home/simi/simi.txt", "r");
$fp = fopen ("/home/simi/simi.gif", "wb");
$fp = fopen ("http://www.php.net/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");

Wenn Sie Probleme haben mit dem Lesen oder Schreiben von Dateien (Wenn Sie PHP als Servermodul benutzen), stellen Sie zunächst sicher, dass die Dateien und Verzeichnisse die Sie benutzen wollen auch für den Server-Prozeß 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 '\\'

$fp = fopen ("c:\\data\\info.txt", "r");

Siehe auch fclose(), fsockopen() und popen().

Zurück | Anfang | Vor
flock | Hoch | fpassthru


fpassthru

(PHP 3, PHP 4 )

fpassthru -- Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.

Beschreibung

int fpassthru (int fp)

Die Funktion liest alle Daten vom Dateizeiger bis EOF aus und gibt die Daten auf der Standartausgabe (Browser) aus.

Wenn ein Fehler auftritt, gibt fpassthru() FALSE zurück.

Der Dateizeiger muss gültig sein und auf eine erfolgreich durch fopen(), popen() oder fsockopen() geöffnete Datei zeigen. Die Datei wird geschlossen, wenn fpassthru() die Datei komplett gelesen hat (hinterläßt nutzlosen fp-Dateizeiger).

Wenn Sie den Inhalt einer Datei nur auf der Standartausgabe (Browser) ausgeben wollen, sollten Sie besser readfile() benutzen, bei der Sie nicht zuvor die Datei mittels fopen() geöffnet haben müssen.

Siehe auch readfile(),
fopen(), popen() und
fsockopen()

Zurück | Anfang | Vor
fopen | Hoch | fputs


fputs

(PHP 3, PHP 4 )

fputs -- Schreibt Daten an die Position des Dateizeigers

Beschreibung

int fputs (int fp, 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 | Anfang | Vor
fpassthru | Hoch | fread


fread

(PHP 3, PHP 4 )

fread -- Liest Binär-Dateien aus einer Datei

Beschreibung

string fread (int fp, int length)

Fread() liest length Bytes vom Dateizeiger, maximal jedoch bis zum Dateiende.

// liest den Inhalt einer Datei in einen String
$filename = "/usr/local/simi.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);

Siehe auch fwrite(),
fopen(), fsockopen(),
popen(), fgets(),
fgetss(), file() und
fpassthru().

Zurück | Anfang | Vor
fputs | Hoch | fseek


fseek

(PHP 3, PHP 4 )

fseek -- Positioniert den Dateizeiger um einen Offset 'offset' vor oder zurück

Beschreibung

int fseek (int fp, int offset [, int whence])

Setzt den Dateizeiger einer mit fp 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.

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.

Siehe auch ftell() und rewind().

Zurück | Anfang | Vor
fread | Hoch | ftell


ftell

(PHP 3, PHP 4 )

ftell -- Ermittelt die aktuelle Position des Dateizeigers

Beschreibung

int ftell (int fp)

Gibt die aktuelle Position des Dateizeigers fp 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(), popen() oder fsockopen() geöffnete Datei zeigen.

Siehe auch fopen(),
popen(), fseek() und
rewind().

Zurück | Anfang | Vor
fseek | Hoch | fwrite


fwrite

(PHP 3, PHP 4 )

fwrite -- Schreibt Binärdaten in eine Datei

Beschreibung

int fwrite (int fp, string string [, int length])

Fwrite() schreibt den Inhalt einer Zeichenkette string in die Datei, auf welche der fp Dateizeiger 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.

Bedenken Sie, dass wenn der length Parameter gesetzt ist, die magic_quotes_runtime Konfigurations-Option ignoriert wird und somit keine Slashes mehr von der Zeichenkette string entfernt werden.

Siehe auch fread(),
fopen(), fsockopen(),
popen() und fputs().

Zurück | Anfang | Vor
ftell | Hoch | set_file_buffer


set_file_buffer

(PHP 3>= 3.0.8, PHP 4 >= 4.0.1)

set_file_buffer -- Setzt die Dateipufferung für einen gegebenen Dateizeiger

Beschreibung

int set_file_buffer (int fp, int buffer)

set_file_buffer() setzt die Pufferung für Schreiboperationen eines gegebenen Dateizeigers fp auf buffer Bytes. Wenn buffer auf 0 gesetzt ist oder 0 ist, wird die Schreibpufferung ausgeschaltet.

Die Funktion gibt 0 bei Erfolg, oder EOF wenn die Anfrage nicht erfolgreich war zurück.

Bedenken Sie, dass der Standartwert beim Aufruf von fopen() mit set_file_buffer immer 8K ist.

Siehe auch fopen().

Zurück | Anfang | Vor
fwrite | Hoch | is_dir


is_dir

(PHP 3, PHP 4 )

is_dir -- Ermittelt, 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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Siehe auch is_file() und is_link().

Zurück | Anfang | Vor
set_file_buffer | Hoch | is_executable


is_executable

(PHP 3, PHP 4 )

is_executable -- Ermittelt, ob eine Datei ausführbar ist

Beschreibung

bool is_executable (string filename)

Gibt TRUE zurück, wenn die Datei existiert und ausführbar ist.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Siehe auch is_file() und is_link().

Zurück | Anfang | Vor
is_dir | Hoch | is_file


is_file

(PHP 3, PHP 4 )

is_file -- Ermittelt, 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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Siehe auch is_dir() und is_link().

Zurück | Anfang | Vor
is_executable | Hoch | is_link


is_link

(PHP 3, PHP 4 )

is_link -- Ermittelt, ob der Dateiname ein synmbolischer Link ist

Beschreibung

bool is_link (string filename)

Gibt TRUE zurück, wenn der Dateiname existiert und es sich um einen symbolischen Link handelt.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Siehe auch is_dir() und is_file().

Anmerkung: Diese Funktion hat auf Windows-Systemen keinen Effekt.

Zurück | Anfang | Vor
is_file | Hoch | is_readable


is_readable

(PHP 3, PHP 4 )

is_readable -- Ermittelt ob eine Datei lesbar ist

Beschreibung

bool is_readable (string filename)

Gibt TRUE zurück wenn die Datei existiert und sie lesbar ist.

Bedenken Sie, dass PHP mit der Benutzer ID auf die Datei zugreift, unter der 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.

Siehe auch is_writeable().

Zurück | Anfang | Vor
is_link | Hoch | is_writeable


is_writeable

(PHP 3, PHP 4 )

is_writeable -- Ermittelt, ob in eine Datei geschrieben werden kann

Beschreibung

bool is_writeable (string filename)

Gibt TRUE zurück, wenn die Datei existiert und nicht schreibgeschützt ist. Das Dateinamen-Argument 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 der 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.

Siehe auch is_readable().

Zurück | Anfang | Vor
is_readable | Hoch | link


link

(PHP 3, PHP 4 )

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().

Anmerkung: Diese Funktion hat unter Windows-Systemen keinen Effekt.

Zurück | Anfang | Vor
is_writeable | Hoch | linkinfo


linkinfo

(PHP 3, PHP 4 )

linkinfo -- Ermittelt 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 exisitiert (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().

Anmerkung: Diese Funktion hat unter Windows keinen Effekt.

Zurück | Anfang | Vor
link | Hoch | mkdir


mkdir

(PHP 3, PHP 4 )

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.

mkdir ("/path/to/my/dir", 0700);

Gibt TRUE bei Erfolg, andernfalls FALSE zurück.

Siehe auch rmdir().

Zurück | Anfang | Vor
linkinfo | Hoch | pclose


pclose

(PHP 3, PHP 4 )

pclose -- Schließt einen Prozess-Dateizeiger

Beschreibung

int pclose (int fp)

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 | Anfang | Vor
mkdir | Hoch | popen


popen

(PHP 3, PHP 4 )

popen -- Öffnet einen Prozesszeiger

Beschreibung

int 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, ausser 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.

$fp = popen ("/bin/ls", "r");

Siehe auch pclose().

Zurück | Anfang | Vor
pclose | Hoch | readfile


readfile

(PHP 3, PHP 4 )

readfile -- Gibt eine Datei aus

Beschreibung

int readfile (string filename [, int use_include_path])

Liest den Inhalt einer Datei und gibt ihn an der Standartausgabe (Browser) aus.

Gibt die Anzahl der Bytes einer Datei zurück. Wenn ein Fehler auftritt wird FALSE zurückgegeben und eine Fehlermeldung wird auf der Standartausgabe ausgegeben. Die Ausgabe einer Fehlermeldung kann durch Voranstellen eines '@' verhindert werden (@readfile).

Wenn filename mit "http://" (nicht case sensitive) beginnt, wird eine HTTP 1.0 Connection zu dem spezifiziertem Server geöffnet und der Text der Antwort wird auf die Standartausgabe geschrieben.

Weiterleitungen (HTTP Redirects) werden nicht unterstützt, daher muss die Datei vollständig mit abschliessendem '/' geschrieben werden.

Wenn filename mit "ftp://" (nicht case sensitive) beginnt, wird eine FTP-Connection zu dem spezifiziertem Server geöffnet und die angeforderte Datei wird auf der Standartausgabe ausgegeben. Wenn der Server keinen passiven Mode unterstützt, wird diese Funktion fehlschlagen.

Wenn filename mit keinem dieser Zeichenketten beginnt, wird die Datei vom lokalen Dateisystem geöffnet und ihr Inhalt auf der Standartausgabe ausgegeben.

Sie können optional den zweiten Paratmeter 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() und
virtual().

Zurück | Anfang | Vor
popen | Hoch | readlink


readlink

(PHP 3, PHP 4 )

readlink -- Gibt das Ziel eines symbolischen Links zurück

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 symlink(), readlink() und linkinfo().

Anmerkung: Diese Funktion hat unter Windows keinen Effekt.

Zurück | Anfang | Vor
readfile | Hoch | rename


rename

(PHP 3, PHP 4 )

rename -- Benennt eine Datei um

Beschreibung

int rename (string oldname, string newname)

Versucht eine Datei oldname in newname umzubenennen.

Gibt TRUE bei Erfolg, andernfalls FALSE zurück.

Zurück | Anfang | Vor
readlink | Hoch | rewind


rewind

(PHP 3, PHP 4 )

rewind -- Setzt den Dateizeiger auf das erste Byte der Datei

Beschreibung

int rewind (int fp)

Setzt den Dateizeiger (Datei-Positions-Indikator) für fp an den Anfang des Dateistreams.

Wenn ein Fehler auftritt, gibt der Funktionsaufruf 0 zurück.

Der Dateizeiger muss gültig sein und auf eine Datei zeigen, die zuvor erfolgreich durch fopen() geöffnet wurde.

Siehe auch fseek() und ftell().

Zurück | Anfang | Vor
rename | Hoch | rmdir


rmdir

(PHP 3, PHP 4 )

rmdir -- Löscht ein Verzeichnis

Beschreibung

int rmdir (string dirname)

Versucht ein Verzeichnis spezifiziert durch die Pfadangabe zu löschen. Das Verzeichnis muss leer sein und die relevanten Rechte müssen erteilt sein.

Wenn ein Fehler auftritt wird 0 zurückgegeben.

Siehe auch mkdir().

Zurück | Anfang | Vor
rewind | Hoch | stat


stat

(PHP 3, PHP 4 )

stat -- Ermittelt diverse Informationen über eine Datei

Beschreibung

array stat (string filename)

Versucht Informationen über eine Datei spezifiziert in filename auszugeben.

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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
rmdir | Hoch | lstat


lstat

(PHP 3>= 3.0.4, PHP 4 )

lstat -- Ermittelt Informationen über einen symbolischen Link.

Beschreibung

array lstat (string filename)

Ermittelt statistische Informationen über einen symbolischen Link spezifiziert in filename. Diese Funktion ist identisch mit der Funktion stat() ausser 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.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.

Zurück | Anfang | Vor
stat | Hoch | realpath


realpath

(PHP 4 >= 4.0b4)

realpath -- Return canonicalized absolute pathname

Description

string realpath (string path)

realpath() expands all symbolic links and resolves references to '/./', '/../' and extra '/' characters in the input path and return the canonicalized absolute pathname. The resulting path will have no symbolic link, '/./' or '/../' components.

Beispiel 1. realpath() example

$real_path = realpath("../../index.php");

Zurück | Anfang | Vor
lstat | Hoch | symlink


symlink

(PHP 3, PHP 4 )

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() zusammmen mit linkinfo().

Anmerkung: Diese Funktion hat unter Windows-Systemen keinen Effekt.

Zurück | Anfang | Vor
realpath | Hoch | tempnam


tempnam

(PHP 3, PHP 4 )

tempnam -- Erzeugt einen eindeutigen Dateinamen

Beschreibung

string tempnam (string dir, string prefix)

Erzeugt einen eindeutigen einmaligen temporären Dateinamen in dem spezifizierten Verzeichnis. Wenn das Verzeichnis nicht existiert, wird tempnam() einen Dateinamen im temporären Verzeichnis des Systems erstellen.

Das Verhalten von tempnam() ist 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 NULL-Zeichenkette wenn ein Fehler auftritt zurück.

Beispiel 1. Tempnam() Beispiel

$tmpfname = tempnam ("/tmp", "FOO");

Siehe auch tmpfile().

Zurück | Anfang | Vor
symlink | Hoch | tmpfile


tmpfile

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

tmpfile -- Legt eine temporäre Datei an

Beschreibung

int 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.

Siehe auch tempnam().

Zurück | Anfang | Vor
tempnam | Hoch | touch


touch

(PHP 3, PHP 4 )

touch -- Setzt das Datum der letzten Änderung einer Datei

Beschreibung

int touch (string filename [, int time])

Versucht das Datum der letzten Modifikation einer Datei spezifiziert durch filename auf den Wert spezifiziert durch time zu setzten. Wenn die Option time nicht angegeben wurde, benutzt die Funktion die aktuelle Zeit.

Wenn die Datei nicht existiert, wird sie erzeugt.

Gibt TRUE bei Erfolg, andernfalls FALSE zurück.

Beispiel 1. Touch() Beispiel

if (touch ($DateiName)) {
    print "$DateiName Modifizierungs-Zeit wurde auf das aktuelle
          Datum und und die aktuelle Uhrzeit gesetzt.";
} else {
    print "Tut mir leid, Modifikations-Zeit von $DateiName konnte
          nicht geändert werden.";
}

Zurück | Anfang | Vor
tmpfile | Hoch | umask


umask

(PHP 3, PHP 4 )

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. Wenn PHP als Servermodul benutzt wird, wird die umask zurückgespeichert wenn die jeweilige Anfrage beendet ist.

Umask() ohne Argumente gibt einfach die aktuelle umask zurück.

Zurück | Anfang | Vor
touch | Hoch | unlink


unlink

(PHP 3, PHP 4 )

unlink -- Löscht eine Datei

Beschreibung

int unlink (string filename)

Löscht filename. Ähnlich der UNIX C unlink() Funktion.

Gibt 0 oder FALSE zurück, wenn ein Fehler auftritt.

Siehe auch rmdir() um Verzeichnisse zu löschen.

Anmerkung: Diese Funktion bleibt unter Windows-Systemen ohne Effekt.

Zurück | Anfang | Vor
umask | Hoch | Forms Data Format functions


Forms Data Format functions

PHP Handbuch
Zurück Vor

XXIII. Forms Data Format functions

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at http://partners.adobe.com/asn/developer/acrosdk/forms.html for more information on what FDF is and how it is used in general.

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. They should be in fdftk-dir/include and fdftk-dir/lib. This will not be the case if you just unpack the FdfTk distribution.

The general idea of FDF is similar to HTML forms. The diffence is basically the format how data is transmitted to the server when the submit button is pressed (this is actually the Form Data Format) and the format of the form itself (which is the Portable Document Format, PDF). Processing the FDF data is one of the features provided by the fdf functions. But there is more. One may as well take an existing PDF form and populated the input fields with data without modifying the form itself. In such a case one would create a FDF document (fdf_create()) set the values of each input field (fdf_set_value()) and associate it with a PDF form (fdf_set_file()). Finally it has to be sent to the browser with MimeType application/vnd.fdf. The Acrobat reader plugin of your browser recognizes the MimeType, reads the associated PDF form and fills in the data from the FDF document.

If you look at an FDF-document with a text editor you will find a catalogue object with the name FDF. Such an object may contain a number of entries like Fields, F, Status etc.. The most commonly used entries are Fields whicht points to a list of input fields, and F which contains the filename of the PDF-document this data belongs to. Those entries are referred to in the FDF documention as /F-Key or /Status-Key. Modifying this entries is done by functions like fdf_set_file() and fdf_set_status(). Fields are modified with fdf_set_value(), fdf_set_opt() etc..

The following examples shows just the evaluation of form data.

Beispiel 1. Evaluating a FDF document

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
// The pdf form contained several input text fields with the names
// volume, date, comment, publisher, preparer, and two checkboxes
// show_publisher and show_preparer.
$fdf = fdf_open("test.fdf");
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<B>$volume</B>'<BR>";

$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<B>$date</B>'<BR>";

$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<B>$comment</B>'<BR>";

if(fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "The publisher field has the value '<B>$publisher</B>'<BR>";
} else
  echo "Publisher shall not be shown.<BR>";

if(fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "The preparer field has the value '<B>$preparer</B>'<BR>";
} else
  echo "Preparer shall not be shown.<BR>";
fdf_close($fdf);
?>
Inhaltsverzeichnis
fdf_open — Open a FDF document
fdf_close — Close an FDF document
fdf_create — Create a new FDF document
fdf_save — Save a FDF document
fdf_get_value — Get the value of a field
fdf_set_value — Set the value of a field
fdf_next_field_name — Get the next field name
fdf_set_ap — Set the appearance of a field
fdf_set_status — Set the value of the /STATUS key
fdf_get_status — Get the value of the /STATUS key
fdf_set_file — Set the value of the /F key
fdf_get_file — Get the value of the /F key
fdf_set_flags — Sets a flag of a field
fdf_set_opt — Sets an option of a field
fdf_set_submit_form_action — Sets an javascript action of a field
fdf_set_javascript_action — Sets an javascript action of a field
Zurück | Anfang | Vor
unlink | Hoch | fdf_open


fdf_open

(PHP 3>= 3.0.6, PHP 4 )

fdf_open -- Open a FDF document

Description

int fdf_open (string filename)

The fdf_open() function opens a file with form data. This file must contain the data as returned from a PDF form. Currently, the file has to be created 'manually' by using fopen() and writing the content of HTTP_FDF_DATA with fwrite() into it. A mechanism like for HTML form data where for each input field a variable is created does not exist.

Beispiel 1. Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
...
fdf_close($fdf);
?>

See also fdf_close().

Zurück | Anfang | Vor
Forms Data Format functions | Hoch | fdf_close


fdf_close

(PHP 3>= 3.0.6, PHP 4 )

fdf_close -- Close an FDF document

Description

boolean fdf_close (int fdf_document)

The fdf_close() function closes the FDF document.

See also fdf_open().

Zurück | Anfang | Vor
fdf_open | Hoch | fdf_create


fdf_create

(PHP 3>= 3.0.6, PHP 4 )

fdf_create -- Create a new FDF document

Description

int fdf_create (void )

The fdf_create() creates a new FDF document. This function is needed if one would like to populate input fields in a PDF document with data.

Beispiel 1. Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 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");
?>

See also fdf_close(),
         fdf_save(),
         fdf_open().

Zurück | Anfang | Vor
fdf_close | Hoch | fdf_save


fdf_save

(PHP 3>= 3.0.6, PHP 4 )

fdf_save -- Save a FDF document

Description

int fdf_save (string filename)

The fdf_save() function saves a FDF document. The FDF Toolkit provides a way to output the document to stdout if the parameter filename is '.'. This does not work if PHP is used as an apache module. In such a case one will have to write to a file and use e.g. fpassthru(). to output it.

See also fdf_close() and example for fdf_create().

Zurück | Anfang | Vor
fdf_create | Hoch | fdf_get_value


fdf_get_value

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_value -- Get the value of a field

Description

string fdf_get_value (int fdf_document, string fieldname)

The fdf_get_value() function returns the value of a field.

See also fdf_set_value().

Zurück | Anfang | Vor
fdf_save | Hoch | fdf_set_value


fdf_set_value

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_value -- Set the value of a field

Description

boolean fdf_set_value (int fdf_document, string fieldname, string value, int isName)

The fdf_set_value() function sets the value of a field. The last parameter determines if the field value is to be converted to a PDF Name (isName = 1) or set to a PDF String (isName = 0).

See also fdf_get_value().

Zurück | Anfang | Vor
fdf_get_value | Hoch | fdf_next_field_name


fdf_next_field_name

(PHP 3>= 3.0.6, PHP 4 )

fdf_next_field_name -- Get the next field name

Description

string fdf_next_field_name (int fdf_document, string fieldname)

The fdf_next_field_name() function returns the name of the field after the field in fieldname or the field name of the first field if the second paramter is NULL.

See also fdf_set_field(), fdf_get_field().

Zurück | Anfang | Vor
fdf_set_value | Hoch | fdf_set_ap


fdf_set_ap

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_ap -- Set the appearance of a field

Description

boolean fdf_set_ap (int fdf_document, string field_name, int face, string filename, int page_number)

The fdf_set_ap() function sets the appearance of a field (i.e. the value of the /AP key). The possible values of face are 1=FDFNormalAP, 2=FDFRolloverAP, 3=FDFDownAP.

Zurück | Anfang | Vor
fdf_next_field_name | Hoch | fdf_set_status


fdf_set_status

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_status -- Set the value of the /STATUS key

Description

boolean fdf_set_status (int fdf_document, string status)

The fdf_set_status() sets the value of the /STATUS key.

See also fdf_get_status().

Zurück | Anfang | Vor
fdf_set_ap | Hoch | fdf_get_status


fdf_get_status

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_status -- Get the value of the /STATUS key

Description

string fdf_get_status (int fdf_document)

The fdf_get_status() returns the value of the /STATUS key.

See also fdf_set_status().

Zurück | Anfang | Vor
fdf_set_status | Hoch | fdf_set_file


fdf_set_file

(PHP 3>= 3.0.6, PHP 4 )

fdf_set_file -- Set the value of the /F key

Description

boolean fdf_set_file (int fdf_document, string filename)

The fdf_set_file() sets the value of the /F key. The /F key is just a reference to a PDF form which is to be populated with data. In a web environment it is a URL (e.g. http:/testfdf/resultlabel.pdf).

See also fdf_get_file() and example for fdf_create().

Zurück | Anfang | Vor
fdf_get_status | Hoch | fdf_get_file


fdf_get_file

(PHP 3>= 3.0.6, PHP 4 )

fdf_get_file -- Get the value of the /F key

Description

string fdf_get_file (int fdf_document)

The fdf_set_file() returns the value of the /F key.

See also fdf_set_file().

Zurück | Anfang | Vor
fdf_set_file | Hoch | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2)

fdf_set_flags -- Sets a flag of a field

Description

boolean fdf_set_flags (int fdf_document, string fieldname, int whichFlags, int newFlags)

The fdf_set_flags() sets certain flags of the given field fieldname.

See also fdf_set_opt().

Zurück | Anfang | Vor
fdf_get_file | Hoch | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2)

fdf_set_opt -- Sets an option of a field

Description

boolean fdf_set_opt (int fdf_document, string fieldname, int element, string str1, string str2)

The fdf_set_opt() sets options of the given field fieldname.

See also fdf_set_flags().

Zurück | Anfang | Vor
fdf_set_flags | Hoch | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2)

fdf_set_submit_form_action -- Sets an javascript action of a field

Description

boolean fdf_set_submit_form_action (int fdf_document, string fieldname, int trigger, string script, int flags)

The fdf_set_submit_form_action() sets a submit form action for the given field fieldname.

See also fdf_set_javascript_action().

Zurück | Anfang | Vor
fdf_set_opt | Hoch | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2)

fdf_set_javascript_action -- Sets an javascript action of a field

Description

boolean fdf_set_javascript_action (int fdf_document, string fieldname, int trigger, string script)

The fdf_set_javascript_action() sets a javascript action for the given field fieldname.

See also fdf_set_submit_form_action().

Zurück | Anfang | Vor
fdf_set_submit_form_action | Hoch | FTP-Funktionen


FTP-Funktionen

PHP Handbuch
Zurück Vor

XXIV. 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 $user nicht möglich";
        die;
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $user";
    }

// 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_connect — Stellt eine FTP-Verbindung her
ftp_login — Anmelden einer FTP-Verbindung (Login)
ftp_pwd — Gibt den aktuellen Verzeichnis-Namen zurück
ftp_cdup — Wechselt in das um eine Ebene höhere Verzeichnis
ftp_chdir — Verzeichnis-Wechsel auf einem FTP-Server
ftp_mkdir — Erzeugt ein Verzeichnis
ftp_rmdir — Löscht ein Verzeichnis
ftp_nlist — Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
ftp_rawlist — Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
ftp_systype — Ermittelt den Systemtyp des entfernten FTP-Servers
ftp_pasv — Schaltet den passiven Modus ein oder aus
ftp_get — Liest eine Datei des FTP-Servers und speichert sie lokal (download)
ftp_fget — Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete, lokale Datei (download)
ftp_put — Überträgt eine Datei auf einen FTP-Server (upload)
ftp_fput — Übertragt eine geöffnete Datei auf einen FTP-Server (upload)
ftp_size — Ermittelt die Dateigrösse einer angegebenen Datei
ftp_mdtm — Ermittelt die letzte Änderungszeit der angegebenen Datei
ftp_rename — Benennt eine Datei auf dem FTP-Server um
ftp_delete — Löscht eine Datei auf dem FTP-Server
ftp_site — Sendet ein SITE-Kommando zum Server
ftp_quit — Schließt / beendet eine FTP-Verbindung
Zurück | Anfang | Vor
fdf_set_javascript_action | Hoch | ftp_connect


ftp_connect

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
FTP-Funktionen | Hoch | ftp_login


ftp_login

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_login -- Anmelden einer FTP-Verbindung (Login)

Beschreibung:

int ftp_login (int ftp_stream, string Benutzername, string Passwort)

Wenn die Anmeldung erfolgreich war, wird true, anderenfalls false zurück gegeben.

Anmeldung beim angegebenen FTP-Stream.

Zurück | Anfang | Vor
ftp_connect | Hoch | ftp_pwd


ftp_pwd

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
ftp_login | Hoch | ftp_cdup


ftp_cdup

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_cdup -- Wechselt in das um eine Ebene höhere Verzeichnis

Beschreibung:

int ftp_cdup (int ftp_stream)

Bei Erfolg wird true, ansonsten false zurück gegeben.

Geht eine Verzeichnisebene höher.

Zurück | Anfang | Vor
ftp_pwd | Hoch | ftp_chdir


ftp_chdir

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_chdir -- Verzeichnis-Wechsel auf einem FTP-Server

Beschreibung:

int ftp_chdir (int ftp_stream, string Verzeichnis)

Bei Erfolg wird true, ansonsten false zurück gegeben.

Wechselt in den durch Verzeichnis angegebenen Datei-Ordner.

Zurück | Anfang | Vor
ftp_cdup | Hoch | ftp_mkdir


ftp_mkdir

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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ück gegeben.

Erzeugt das angegebene Verzeichnis.

Zurück | Anfang | Vor
ftp_chdir | Hoch | ftp_rmdir


ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
ftp_mkdir | Hoch | ftp_nlist


ftp_nlist

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 Fehler - false zurück.

Zurück | Anfang | Vor
ftp_rmdir | Hoch | ftp_rawlist


ftp_rawlist

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
ftp_nlist | Hoch | ftp_systype


ftp_systype

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_systype -- Ermittelt den Systemtyp des entfernten FTP-Servers

Beschreibung:

string ftp_systype (int ftp_stream)

Gibt den entfernten Systemtyp an bzw. false bei einem Fehler.

Zurück | Anfang | Vor
ftp_rawlist | Hoch | ftp_pasv


ftp_pasv

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_pasv -- Schaltet den passiven Modus ein oder aus

Beschreibung:

int ftp_pasv (int ftp_stream, int pasv)

Bei Erfolg wird true, ansonsten false zurück gegeben.

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 | Anfang | Vor
ftp_systype | Hoch | ftp_get


ftp_get

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_get -- Liest eine Datei des FTP-Servers und speichert sie lokal (download)

Beschreibung:

int ftp_get (int ftp_stream, string local_file, string remote_file, int mode)

Bei Erfolg wird true, sonst false zurück gegeben.

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 | Anfang | Vor
ftp_pasv | Hoch | ftp_fget


ftp_fget

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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)

Sofern erfolgreich wird true, ansonsten false zurück gegeben.

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 | Anfang | Vor
ftp_get | Hoch | ftp_put


ftp_put

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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)

Bei Erfolg wird true, sonst false zurück gegeben.

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 | Anfang | Vor
ftp_fget | Hoch | ftp_fput


ftp_fput

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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)

Bei Erfolg wird true, sonst false zurück gegeben.

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 | Anfang | Vor
ftp_put | Hoch | ftp_size


ftp_size

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_size -- Ermittelt die Dateigrösse einer angegebenen Datei

Beschreibung:

int ftp_size (int ftp_stream, string remote_file)

Gibt die Dateigrösse oder -1 bei Fehlern zurück.

Ftp_size() ermittelt die Grösse einer Datei. Wenn ein Fehler vorliegt, so z.B. wenn die Datei nicht existiert, wird -1 zurück gegeben. Nicht alle FTP-Server unterstützen diese Funktionalität.

Zurück | Anfang | Vor
ftp_fput | Hoch | ftp_mdtm


ftp_mdtm

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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ück gegeben, 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ück gegeben. Nicht alle FTP-Server unterstützen diese Funktionalität.

Anmerkung: Ftp_mdtm() funktioniert nicht mit Verzeichnissen.

Zurück | Anfang | Vor
ftp_size | Hoch | ftp_rename


ftp_rename

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_rename -- Benennt eine Datei auf dem FTP-Server um

Beschreibung:

int ftp_rename (int ftp_stream, string from, string to)

Falls erfolgreich wird true, sonst false zurück gegeben.

Ftp_rename() benennt die mit from angegebene Datei in toum.

Zurück | Anfang | Vor
ftp_mdtm | Hoch | ftp_delete


ftp_delete

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_delete -- Löscht eine Datei auf dem FTP-Server

Beschreibung:

int ftp_delete (int ftp_stream, string path)

Falls erfolgreich wird true, sonst false zurück gegeben.

Ftp_delete() löscht die per path angegebene Datei auf dem FTP-Server.

Zurück | Anfang | Vor
ftp_rename | Hoch | ftp_site


ftp_site

(PHP 3>= 3.0.15, PHP 4 >= 4.0RC1)

ftp_site -- Sendet ein SITE-Kommando zum Server

Beschreibung:

int ftp_site (int ftp_stream, string cmd)

Bei erfolgreicher Ausführung wird true, sonst false zurück gegeben

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.

Zurück | Anfang | Vor
ftp_delete | Hoch | ftp_quit


ftp_quit

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

ftp_quit -- Schließt / beendet eine FTP-Verbindung

Beschreibung:

int ftp_quit (int ftp_stream)

Ftp_connect() schließt die per ftp_stream bezeichnete FTP-Sitzung.

Zurück | Anfang | Vor
ftp_site | Hoch | Function Handling functions


Function Handling functions

PHP Handbuch
Zurück Vor

XXV. Function Handling functions

These functions all handle various operations involved in working with functions.

Inhaltsverzeichnis
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
register_shutdown_function — Registriert eine Funktion zur Ausführung beim Skript-Abschluss
Zurück | Anfang | Vor
ftp_quit | Hoch | call_user_func


call_user_func

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
Function Handling functions | Hoch | create_function


create_function

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
call_user_func | Hoch | func_get_arg


func_get_arg

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
create_function | Hoch | func_get_args


func_get_args

(PHP 4 >= 4.0b4)

func_get_args -- Gibt ein Array zurück, das die Liste der einer Funktion übergebenen Argumente enthält

Beschreibung:

int func_get_args (void )

In einem Array wird jedes Element zurück gegeben, das einer benutzer-definierten 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 | Anfang | Vor
func_get_arg | Hoch | func_num_args


func_num_args

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
func_get_args | Hoch | function_exists


function_exists

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
func_num_args | Hoch | register_shutdown_function


register_shutdown_function

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
function_exists | Hoch | GNU Gettext


GNU Gettext

PHP Handbuch
Zurück Vor

XXVI. 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
bindtextdomain — Setzt den Pfad für einen Textbereich
dcgettext — Setzt den Textbereich für eine Abfrage neu
dgettext — Setzt den Textbereich für eine Abfrage neu
gettext — Liefert eine Übersetzung für den aktuellen Textbereich
textdomain — Setzt den Standardbereich
Zurück | Anfang | Vor
register_shutdown_function | Hoch | bindtextdomain


bindtextdomain

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
GNU Gettext | Hoch | dcgettext


dcgettext

(PHP 3>= 3.0.7, PHP 4 )

dcgettext -- Setzt den Textbereich für eine Abfrage neu

Description

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 | Anfang | Vor
bindtextdomain | Hoch | dgettext


dgettext

(PHP 3>= 3.0.7, PHP 4 )

dgettext -- Setzt den Textbereich für eine Abfrage neu

Description

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 | Anfang | Vor
dcgettext | Hoch | gettext


gettext

(PHP 3>= 3.0.7, PHP 4 )

gettext -- Liefert eine Übersetzung für den aktuellen Textbereich

Description

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 | Anfang | Vor
dgettext | Hoch | textdomain


textdomain

(PHP 3>= 3.0.7, PHP 4 )

textdomain -- Setzt den Standardbereich

Description

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 | Anfang | Vor
gettext | Hoch | GMP functions


GMP functions

PHP Handbuch
Zurück Vor

XXVII. GMP functions

These functions allow you to work with arbitrary-length integers using the GNU MP library. In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

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.

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.

Beispiel 1. Factorial function using GMP

<?php
function fact ($x) {
    if ($x <= 1)
        return 1;
    else
        return gmp_mul ($x, fact ($x-1));
}

print gmp_strval (fact (1000)) . "\n";
?>

This will calculate factiorial of 1000 (pretty big number) very fast.

Inhaltsverzeichnis
gmp_init — Create GMP number
gmp_intval — Convert GMP number to integer
gmp_strval — Convert GMP number to string
gmp_add — Add numbers
gmp_sub — Subtract numbers
gmp_mul — Multiply numbers
gmp_div_q — Divide numbers
gmp_div_r — Remainder of the division of numbers
gmp_div_qr — Divide numbers and get quotient and remainder
gmp_div — Divide numbers
gmp_mod — Modulo operation
gmp_divexact — Exact division of numbers
gmp_cmp — Compare numbers
gmp_neg — Negate number
gmp_abs — Absolute value
gmp_sign — Sign of number
gmp_fact — Factorial
gmp_sqrt — Square root
gmp_sqrtrm — Square root with remainder
gmp_perfect_square — Perfect square check
gmp_pow — Raise number into power
gmp_powm — Raise number into power with modulo
gmp_prob_prime — Check if number is "probably prime"
gmp_gcd — Calculate GCD
gmp_gcdext — Calculate GCD and multipliers
gmp_invert — Inverse by modulo
gmp_legendre — Legendre symbol
gmp_jacobi — Jacobi symbol
gmp_random — Random number
gmp_and — Logical AND
gmp_or — Logical OR
gmp_xor — Logical XOR
gmp_setbit — Set bit
gmp_clrbit — Clear bit
gmp_scan0 — Scan for 0
gmp_scan1 — Scan for 1
gmp_popcount — Population count
gmp_hamdist — Hamming distance
Zurück | Anfang | Vor
textdomain | Hoch | gmp_init


gmp_init

(PHP 4 >= 4.0.4)

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 | Anfang | Vor
GMP functions | Hoch | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4)

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().

Zurück | Anfang | Vor
gmp_init | Hoch | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4)

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 | Anfang | Vor
gmp_intval | Hoch | gmp_add


gmp_add

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_strval | Hoch | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4)

gmp_sub -- Subtract numbers

Description

resource gmp_sub (resource a, resource b)

Subtracts b from a and returns the result.

Zurück | Anfang | Vor
gmp_add | Hoch | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4)

gmp_mul -- Multiply numbers

Description

resource gmp_mul (resource a, resource b)

Multiplies a by b and returns the result.

Zurück | Anfang | Vor
gmp_sub | Hoch | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4)

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().

See also gmp_div_r(), gmp_div_qr()

Zurück | Anfang | Vor
gmp_mul | Hoch | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4)

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.

See the gmp_div_q() function for description of the round argument.

See also gmp_div_q(), gmp_div_qr()

Zurück | Anfang | Vor
gmp_div_q | Hoch | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4)

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 | Anfang | Vor
gmp_div_r | Hoch | gmp_div


gmp_div

(PHP 4 >= 4.0.4)

gmp_div -- Divide numbers

Description

resource gmp_div (resource a, resource b)

This function is an alias to gmp_div_q().

Zurück | Anfang | Vor
gmp_div_qr | Hoch | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_div | Hoch | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_mod | Hoch | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4)

gmp_cmp -- Compare numbers

Description

int gmp_cmp (resource a, resource b)

Returns a positive value if a > b, zero if a = b and negative value if a < b.

Zurück | Anfang | Vor
gmp_divexact | Hoch | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4)

gmp_neg -- Negate number

Description

resource gmp_neg (resource a)

Returns -a.

Zurück | Anfang | Vor
gmp_cmp | Hoch | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4)

gmp_abs -- Absolute value

Description

resource gmp_abs (resource a)

Returns absolute value of a.

Zurück | Anfang | Vor
gmp_neg | Hoch | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4)

gmp_sign -- Sign of number

Description

int gmp_sign (resource a)

Return sign of a - 1 if a is positive and -1 if it's negative.

Zurück | Anfang | Vor
gmp_abs | Hoch | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4)

gmp_fact -- Factorial

Description

resource gmp_fact (int a)

Calculates factorial (a!) of a.

Zurück | Anfang | Vor
gmp_sign | Hoch | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4)

gmp_sqrt -- Square root

Description

resource gmp_sqrt (resource a)

Calculates square root of a.

Zurück | Anfang | Vor
gmp_fact | Hoch | gmp_sqrtrm


gmp_sqrtrm

(unknown)

gmp_sqrtrm -- Square root with remainder

Description

array gmp_sqrtrm (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).

Zurück | Anfang | Vor
gmp_sqrt | Hoch | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square (resource a)

Returns true if a is a perfect square, false otherwise.

See also: gmp_sqrt(), gmp_sqrtrm().

Zurück | Anfang | Vor
gmp_sqrtrm | Hoch | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_perfect_square | Hoch | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_pow | Hoch | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_powm | Hoch | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_prob_prime | Hoch | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_gcd | Hoch | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_gcdext | Hoch | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_invert | Hoch | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_legendre | Hoch | gmp_random


gmp_random

(PHP 4 >= 4.0.4)

gmp_random -- Random number

Description

resource gmp_random (int limiter)

Generate a random number. The number will be up to limiter words long. If limiter is negative, negative numbers are generated.

Zurück | Anfang | Vor
gmp_jacobi | Hoch | gmp_and


gmp_and

(PHP 4 >= 4.0.4)

gmp_and -- Logical AND

Description

resource gmp_and (resource a, resource b)

Calculates logical AND of two GMP numbers.

Zurück | Anfang | Vor
gmp_random | Hoch | gmp_or


gmp_or

(PHP 4 >= 4.0.4)

gmp_or -- Logical OR

Description

resource gmp_or (resource a, resource b)

Calculates logical inclusive OR of two GMP numbers.

Zurück | Anfang | Vor
gmp_and | Hoch | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4)

gmp_xor -- Logical XOR

Description

resource gmp_xor (resource a, resource b)

Calculates logical exclusive OR (XOR) of two GMP numbers.

Zurück | Anfang | Vor
gmp_or | Hoch | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4)

gmp_setbit -- Set bit

Description

resource 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.

Zurück | Anfang | Vor
gmp_xor | Hoch | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4)

gmp_clrbit -- Clear bit

Description

resource gmp_clrbit (resource &a, int index)

Clears (sets to 0) bit index in a.

Zurück | Anfang | Vor
gmp_setbit | Hoch | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_clrbit | Hoch | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_scan0 | Hoch | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4)

gmp_popcount -- Population count

Description

int gmp_popcount (resource a)

Return the population count of a.

Zurück | Anfang | Vor
gmp_scan1 | Hoch | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4)

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.

Zurück | Anfang | Vor
gmp_popcount | Hoch | HTTP-Funktionen


HTTP-Funktionen

PHP Handbuch
Zurück Vor

XXVIII. HTTP-Funktionen

Diese Funktionen ermöglichen die Manipulation der an den Browser geschickten Informationen bis hinunter auf HTTP-Protokoll-Ebene.

Inhaltsverzeichnis
header — Sendet einen HTTP-Header
header_sent — Gibt True zurück, wenn die Header schon gesendet sind
setcookie — Sendet ein Cookie
Zurück | Anfang | Vor
gmp_hamdist | Hoch | header


header

(PHP 3, PHP 4 )

header -- Sendet einen HTTP-Header

Beschreibung:

int header (string string)

Die Header()-Funktion wird zu Beginn einer HTML-Datei benutzt um HTTP-Anfangsinformationen zu senden. Siehe HTTP 1.1 Spezifikationen für weitere Informationen. Hinweis: Beachten sie, dass die Header()-Funktion aufgerufen werden muss, bevor irgendeine Ausgabe durch normale HTML-Tags oder PHP erzeugt wird. Es ist ein häufig anzutreffender Fehler, per include() Programm-Code einzubinden (bzw. per auto_prepend) oder Leerzeichen oder -zeilen vor dem Code stehen zu haben, die bereits Ausgaben bewirken (auch wenn diese leer sind) bevor header() aufgerufen wird.

Es gibt zwei Spezialfälle von Header-Aufrufen. Der Erste ist der "Location"-Header. Es wird nicht nur der Header an den Browser geschickt, der Apache erhält auch noch den Status-Code REDIRECT. Aus Sicht des Skript-Schreibers ist das nicht wichtig, aber für alle, die die Internas von Apache verstehen wollen, ist dies von Belang.

header ("Location: http://www.php.net");  /* Umleitung des Browsers
                                             zur PHP-Web-Seite. */
exit;  /* Sicher stellen, das nicht trotz Umleitung nachfolgender
          Code ausgeführt wird. */

Der zweite Spezialfall ist ein Header der mit der Zeichenfolge "HTTP/" beginnt (Groß-/Kleinschreibung ist egal). Falls sie z.B. die Dokument-Fehler-Anweisung 404 des Apache auf ein PHP-Skript zeigen lassen, ist es gut, wenn dieses Skript einen 404-Fehler erzeugt. In diesem Skript sollten sie also zuerst stehen haben:

header ("HTTP/1.0 404 Not Found");

PHP-Skripte erzeugen oft dynamisches HTML, das weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden soll bzw. darf. Bei vielen Proxies und Browsern kann das Cachen unterbunden werden und zwar mit:

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Datum der
Vergangenheit
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT");
                                                      // immer geändert
header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
header ("Pragma: no-cache");                          // HTTP/1.0

Siehe auch: headers_sent().

Zurück | Anfang | Vor
HTTP-Funktionen | Hoch | header_sent


header_sent

(unknown)

header_sent -- Gibt True zurück, wenn die Header schon gesendet sind

Beschreibung:

boolean headers_sent (void)

Diese Funktion gibt True zurück, wenn die HTTP-Header bereits abgeschickt worden sind, ansonsten wird False zurück gegeben.

Siehe auch: header().

Zurück | Anfang | Vor
header | Hoch | setcookie


setcookie

(PHP 3, PHP 4 )

setcookie -- Sendet ein Cookie

Beschreibung:

int setcookie (string name, string value, int expire, string path, string domain, int secure [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Setcookie() definiert ein mit den Header-Informationen zu übertragendes Cookie. Cookies müssen vor irgendwelchen anderen Headern gesendet werden (dies ist eine Einschränkung der Cookies, nicht von PHP). Sie müssen deshalb solche Funktionsaufrufe vor irgendwelchen <html>- oder <head>-Tags im Skript einsetzen.

Alle Argumente - ausser name - sind optional. Ist nur der Name angegeben wird das Cookie mit diesem Namen auf dem Client gelöscht. Sie können beliebige Argumente auch durch einen Leerstring ("") ersetzen, um diese Argumente zu übergehen. Der expire-Parameter und das secure-Argument sind Integer-Werte und können nicht mit einem Leerstring übersprungen werden. Setzen sie statt dessen Null (0). Der expire-Parameter ist ein normaler UNIX-Zeitwert als Integer-Zahl, wie er von der time() oder mktime()-Funktion zurück gegeben wird. Das secure-Argument bedeutet, dass das Cookie nur über eine sichere HTTP-Verbindung geschickt werden soll.

Anwendungsbereiche:

  • Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, in der das Cookie sichtbar sein soll.

  • Cookies müssen mit den selben Parametern gelöscht werden, mit denen sie gesetzt wurden.

In PHP3 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 PHP4 werden mehrfache Aufrufe von setcookie() in der Reihenfolge ihres Aufrufs behandelt.

Einige Beispiele, wie Cookies gesetzt / gesendet werden:

Beispiel 1. Setcookie()-Beispiele:

setcookie ("TestCookie", "Test Value");
setcookie ("TestCookie", $value, time()+3600);  /* verfällt in 1 Stunde */
setcookie ("TestCookie", $value, time()+3600, "/~rasmus/", ".utoronto.ca",1);

Beispiele, wie die vorhergehenden Cookies wieder gelöscht werden:

Beispiel 2. Setcookie()-Beispiele:

setcookie ("TestCookie");
// Setzen des Ablauf-Zeitpunktes auf 1 Stunde vorher
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca",1);
Beim Löschen eines Cookies sollten sie sicher stellen, dass die Verfallszeit in der Vergangenheit liegt, damit ihr Browser "zufrieden" ist.

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 Beispiel zu benutzen:

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

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:

setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
    while (list ($name, $value) = each ($cookie)) {
        echo "$name == $value<br>\n";
    }
}

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 Servive-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 | Anfang | Vor
header_sent | Hoch | Hyperwave functions


Hyperwave functions

PHP Handbuch
Zurück Vor

XXIX. Hyperwave functions

Introduction

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (If I remember properly it was in 1996).

Hyperwave is not free software. The current version, 4.1, is available at www.hyperwave.com. A time limited version can be ordered for free (30 days).

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/php3_script/my_object' and the script 'php3_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. '_'. to be continued.

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 associated array with all attributes of an object. The key is the attribute name. If an attribute occurs more than once in an object record it will result in another indexed or associated array. Attributes which are language depended (like the title, keyword, description) will form an associated array with the key set to the language abbreviation. 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 optimised for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associated 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.

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 I will assume that the Apache server will only serve as a Hyperwave web interface. 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 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. Finally, don't forget to turn on the rewriting engine with

RewriteEngine on

My experiences have shown that you will need the following 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.

Todo

There are still some things todo:

  • 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_Children — object ids of children
hw_ChildrenObj — object records of children
hw_Close — closes the Hyperwave connection
hw_Connect — opens a connection
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_ErrorMsg — returns error message
hw_EditText — retrieve text document
hw_Error — error number
hw_Free_Document — frees hw_document
hw_GetParents — object ids of parents
hw_GetParentsObj — object records of parents
hw_GetChildColl — object ids of child collections
hw_GetChildCollObj — object records of child collections
hw_GetRemote — Gets a remote document
hw_GetRemoteChildren — Gets children of remote document
hw_GetSrcByDestObj — Returns anchors pointing at object
hw_GetObject — object record
hw_GetAndLock — return bject record and lock object
hw_GetText — retrieve text document
hw_GetObjectByQuery — search object
hw_GetObjectByQueryObj — search object
hw_GetObjectByQueryColl — search object in collection
hw_GetObjectByQueryCollObj — search object in collection
hw_GetChildDocColl — object ids of child documents of collection
hw_GetChildDocCollObj — object records of child documents of collection
hw_GetAnchors — object ids of anchors of document
hw_GetAnchorsObj — object records of anchors of document
hw_Mv — moves objects
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_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_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_Unlock — unlock object
hw_Who — List of currently logged in users
hw_getusername — name of currently logged in user
Zurück | Anfang | Vor
setcookie | Hoch | hw_Array2Objrec


hw_Array2Objrec

(PHP 3>= 3.0.4, PHP 4 )

hw_Array2Objrec -- convert attributes from object array to object record

Description

strin 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 | Anfang | Vor
Hyperwave functions | Hoch | 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 | Anfang | Vor
hw_Array2Objrec | Hoch | 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 | Anfang | Vor
hw_Children | Hoch | 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 | Anfang | Vor
hw_ChildrenObj | Hoch | 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 | Anfang | Vor
hw_Close | Hoch | 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 | Anfang | Vor
hw_Connect | Hoch | 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 | Anfang | Vor
hw_Cp | Hoch | 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 | Anfang | Vor
hw_Deleteobject | Hoch | 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 | Anfang | Vor
hw_DocByAnchor | Hoch | 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 | Anfang | Vor
hw_DocByAnchorObj | Hoch | 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 | Anfang | Vor
hw_Document_Attributes | Hoch | 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_DocumentSetContent().

Zurück | Anfang | Vor
hw_Document_BodyTag | Hoch | hw_Document_SetContent


hw_Document_SetContent

(PHP 4 >= 4.0b2)

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 | Anfang | Vor
hw_Document_Content | Hoch | 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 | Anfang | Vor
hw_Document_SetContent | Hoch | 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 | Anfang | Vor
hw_Document_Size | Hoch | 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_FreeDocument(),
hw_Document_BodyTag(),
hw_Document_Size(),
hw_Output_Document(),
hw_GetText().

Zurück | Anfang | Vor
hw_ErrorMsg | Hoch | 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 | Anfang | Vor
hw_EditText | Hoch | 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 | Anfang | Vor
hw_Error | Hoch | 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 | Anfang | Vor
hw_Free_Document | Hoch | 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 | Anfang | Vor
hw_GetParents | Hoch | 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_GetChildren(), and hw_GetChildDocColl().

Zurück | Anfang | Vor
hw_GetParentsObj | Hoch | 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 | Anfang | Vor
hw_GetChildColl | Hoch | 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 throught 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 | Anfang | Vor
hw_GetChildCollObj | Hoch | 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 exactely 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 | Anfang | Vor
hw_GetRemote | Hoch | 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 | Anfang | Vor
hw_GetRemoteChildren | Hoch | hw_GetObject


hw_GetObject

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObject -- object record

Description

array hw_getobject (int connection, [int|array] 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 | Anfang | Vor
hw_GetSrcByDestObj | Hoch | hw_GetAndLock


hw_GetAndLock

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAndLock -- return bject 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 | Anfang | Vor
hw_GetObject | Hoch | 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 hierachy 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 seperator between hierachy 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 hierachy 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_FreeDocument(),
hw_Document_BodyTag(),
hw_Document_Size(),
and hw_Output_Document().

Zurück | Anfang | Vor
hw_GetAndLock | Hoch | 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 | Anfang | Vor
hw_GetText | Hoch | 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 | Anfang | Vor
hw_GetObjectByQuery | Hoch | 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 | Anfang | Vor
hw_GetObjectByQueryObj | Hoch | 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 | Anfang | Vor
hw_GetObjectByQueryColl | Hoch | 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_GetChildren(), and hw_GetChildColl().

Zurück | Anfang | Vor
hw_GetObjectByQueryCollObj | Hoch | 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 | Anfang | Vor
hw_GetChildDocColl | Hoch | 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 | Anfang | Vor
hw_GetChildDocCollObj | Hoch | 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 | Anfang | Vor
hw_GetAnchors | Hoch | 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 return is the number of moved objects.

See also hw_cp(), and hw_deleteobject().

Zurück | Anfang | Vor
hw_GetAnchorsObj | Hoch | 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 | Anfang | Vor
hw_Mv | Hoch | 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 | Anfang | Vor
hw_Identify | Hoch | 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 | Anfang | Vor
hw_InCollections | Hoch | 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 | Anfang | Vor
hw_Info | Hoch | 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 | Anfang | Vor
hw_InsColl | Hoch | 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_NewDocument(). 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 | Anfang | Vor
hw_InsDoc | Hoch | 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 correspondig link in the annotation text.

See also hw_PipeDocument(),
hw_InsertDocument(),
hw_InsDoc(),
and hw_InsColl().

Zurück | Anfang | Vor
hw_InsertDocument | Hoch | hw_mapid


hw_mapid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
hw_InsertObject | Hoch | hw_Modifyobject


hw_Modifyobject

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 recurive modification. If some of the objects cannot be modified they will be skiped 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 neccessary 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

       // $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

       // $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

       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
or

Beispiel 4. modifying Title attribute

       $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

       $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 suround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

Returns TRUE if no error occurs otherwise FALSE.

Zurück | Anfang | Vor
hw_mapid | Hoch | 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_FreeDocument(),
hw_Document_Size(),
hw_Document_BodyTag(),
hw_Output_Document(),
and hw_InsertDocument().

Zurück | Anfang | Vor
hw_Modifyobject | Hoch | 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 | Anfang | Vor
hw_New_Document | Hoch | 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 | Anfang | Vor
hw_Objrec2Array | Hoch | 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 | Anfang | Vor
hw_Output_Document | Hoch | 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 transfered via a special data connection which does not block the control connection.

See also hw_GetText() for more on link insertion,
hw_FreeDocument(),
hw_Document_Size(),
hw_Document_BodyTag(),
and hw_Output_Document().

Zurück | Anfang | Vor
hw_pConnect | Hoch | 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 | Anfang | Vor
hw_PipeDocument | Hoch | 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 | Anfang | Vor
hw_Root | Hoch | 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 initianted the request.

Zurück | Anfang | Vor
hw_Unlock | Hoch | 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 | Anfang | Vor
hw_Who | Hoch | ICAP Functions


ICAP Functions

PHP Handbuch
Zurück Vor

XXX. ICAP Functions

To get these functions to work, you have to compile PHP with --with-icap. That requires the icap library to be installed. Grab the latest version from http://icap.chek.com/ and compile and install it.

Inhaltsverzeichnis
icap_open — Opens up an ICAP connection
icap_close — Close an ICAP stream
icap_fetch_event — Fetches an event from the calendar stream/
icap_list_events — Return a list of events between two given datetimes
icap_store_event — Store an event into an ICAP calendar
icap_delete_event — Delete an event from an ICAP calendar
icap_snooze — Snooze an alarm
icap_list_alarms — Return a list of events that has an alarm triggered at the given datetime
Zurück | Anfang | Vor
hw_getusername | Hoch | icap_open


icap_open

(PHP 4 >= 4.0b4)

icap_open -- Opens up an ICAP connection

Description

stream icap_open (string calendar, string username, string password, string options)

Returns an ICAP stream on success, false on error.

icap_open() opens up an ICAP connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Zurück | Anfang | Vor
ICAP Functions | Hoch | icap_close


icap_close

(unknown)

icap_close -- Close an ICAP stream

Description

int icap_close (int icap_stream [, int flags])

Closes the given icap stream.

Zurück | Anfang | Vor
icap_open | Hoch | icap_fetch_event


icap_fetch_event

(PHP 4 >= 4.0b4)

icap_fetch_event -- Fetches an event from the calendar stream/

Description

int icap_fetch_event (int stream_id, int event_id [, int options])

Icap_fetch_event() fetches an event from the calendar stream specified by event_id.

Returns an event object consisting of:

  • 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.

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

Zurück | Anfang | Vor
icap_close | Hoch | icap_list_events


icap_list_events

(PHP 4 >= 4.0RC1)

icap_list_events -- Return a list of events between two given datetimes

Description

array icap_list_events (int stream_id, int begin_date [, int end_date])

Returns an array of event ID's that are between the two given datetimes.

Icap_list_events() function takes in a beginning datetime and an end datetime for a calendar stream. An array of event id's that are between the given datetimes are returned.

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

Zurück | Anfang | Vor
icap_fetch_event | Hoch | icap_store_event


icap_store_event

(PHP 4 >= 4.0b4)

icap_store_event -- Store an event into an ICAP calendar

Description

string icap_store_event (int stream_id, object event)

Icap_store_event() Stores an event into an ICAP calendar. An event object consists of:

  • int public - 1 if public, 0 if private;

  • string caegory - 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 sned out an alarm.

  • datetime start - datetime object of the start of the event.

  • datetime end - datetime object of the end of the event.

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

Returns true on success and false on error.

Zurück | Anfang | Vor
icap_list_events | Hoch | icap_delete_event


icap_delete_event

(PHP 4 >= 4.0b4)

icap_delete_event -- Delete an event from an ICAP calendar

Description

string icap_delete_event (int sream_id, int uid)

Icap_delete_event() deletes the calendar event specified by the uid.

Returns true.

Zurück | Anfang | Vor
icap_store_event | Hoch | icap_snooze


icap_snooze

(PHP 4 >= 4.0b4)

icap_snooze -- Snooze an alarm

Description

string icap_snooze (int stream_id, int uid)

Icap_snooze() turns on an alarm for a calendar event specified by the uid.

Returns true.

Zurück | Anfang | Vor
icap_delete_event | Hoch | icap_list_alarms


icap_list_alarms

(PHP 4 >= 4.0b4)

icap_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

int icap_list_alarms (int stream_id, array date, array time)

Returns an array of event ID's that has an alarm going off at the given datetime.

Icap_list_alarms() function takes in a datetime for a calendar stream. An array of event id's that has an alarm should be going off at the datetime are returned.

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

Zurück | Anfang | Vor
icap_snooze | Hoch | Grafik-Funktionen


Grafik-Funktionen

PHP Handbuch
Zurück Vor

XXXI. 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 nue compiliert werden.

Die Unterstützung von Type-1-Fonts können Sie mit der Installation von t1lib (siehe unterftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/) einbinden. Beim Compilieren müssen Sie dann noch die Option --with-t1lib[=dir] angeben.

Inhaltsverzeichnis
GetImageSize — Ermittelt die Ausmaße einer GIF-, JPEG-, PNG- oder SWF-Grafik-Datei
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
ImageColorAt — Ermittelt den Farbwert eines Bildpunktes
ImageColorClosest — Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
ImageColorDeAllocate — Löscht eine Farbdefinition
ImageColorExact — Ermittelt den Index-Wert der angegebenen Farbe
ImageColorResolve — Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu
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
ImageCopyResized — Kopieren und Ändern der Grösse eines Bild-Teiles
ImageCreate — Erzeugt ein neues Bild
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
ImageDashedLine — Zeichnen einer gestrichelten Linie
ImageDestroy — Löscht ein Bild
ImageFill — Füllen mit Farbe ("flood fill")
ImageFilledPolygon — Zeichnet ein gefülltes Vieleck (Polygon)
ImageFilledRectangle — Zeichnet ein gefülltes Rechteck
ImageFillToBorder — Flächen-Farbfüllung ("flood fill") mit einer angegebenen Farbe
ImageFontHeight — Ermittelt die Font-Höhe
ImageFontWidth — Ermittelt die Font-Breite
ImageGammaCorrect — Anwendung einer Gamma-Korrektur auf ein GD-Bild
ImageGIF — Ausgabe eines Bildes an den Browser oder in eine Datei
ImageJPEG — Ausgabe des Bildes im Browser oder als Datei
ImagePNG — Ausgabe eines Bildes an den Browser oder in eine Datei
ImageInterlace — Schaltet die Interlaced-Darstellung eines Bildes an oder aus
ImageLine — Zeichnen einer Linie
ImageLoadFont — Lädt einen neuen Font
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.
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
ImageSetPixel — Setzt ein einzelnes Pixel
ImageString — Zeichnet einen horizontalen String
ImageStringUp — Zeichnet einen vertikalen String
ImageSX — Ermittelt die Bild-Breite
ImageSY — Ermittelt die Bild-Höhe
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
read_exif_data — Liest die EXIF Header-Infos einer JPEG-Grafik
Zurück | Anfang | Vor
icap_list_alarms | Hoch | GetImageSize


GetImageSize

(PHP 3, PHP 4 )

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:

<?php $size = GetImageSize ("img/flag.jpg"); ?>
<IMG SRC="img/flag.jpg" <?php echo $size[3]; ?>

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 | Anfang | Vor
Grafik-Funktionen | Hoch | ImageArc


ImageArc

(PHP 3, PHP 4 )

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 | Anfang | Vor
GetImageSize | Hoch | ImageChar


ImageChar

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageArc | Hoch | ImageCharUp


ImageCharUp

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageChar | Hoch | ImageColorAllocate


ImageColorAllocate

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageCharUp | Hoch | ImageColorAt


ImageColorAt

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorAllocate | Hoch | ImageColorClosest


ImageColorClosest

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorAt | Hoch | ImageColorDeAllocate


ImageColorDeAllocate

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ImageColorClosest | Hoch | ImageColorExact


ImageColorExact

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorDeAllocate | Hoch | ImageColorResolve


ImageColorResolve

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
ImageColorExact | Hoch | ImageColorSet


ImageColorSet

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorResolve | Hoch | ImageColorsForIndex


ImageColorsForIndex

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorSet | Hoch | ImageColorsTotal


ImageColorsTotal

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorsForIndex | Hoch | ImageColorTransparent


ImageColorTransparent

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageColorsTotal | Hoch | ImageCopy


ImageCopy

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ImageColorTransparent | Hoch | ImageCopyResized


ImageCopyResized

(PHP 3, PHP 4 )

ImageCopyResized -- Kopieren und Ändern der Grösse eines Bild-Teiles

Beschreibung:

int imagecopyresized (int dst_im, int 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 | Anfang | Vor
ImageCopy | Hoch | ImageCreate


ImageCreate

(PHP 3, PHP 4 )

ImageCreate -- Erzeugt ein neues Bild

Beschreibung:

int 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.

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);
?>

Zurück | Anfang | Vor
ImageCopyResized | Hoch | ImageCreateFromGIF


ImageCreateFromGIF

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageCreate | Hoch | ImageCreateFromJPEG


ImageCreateFromJPEG

(PHP 3>= 3.0.16, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImageCreateFromGIF | Hoch | ImageCreateFromPNG


ImageCreateFromPNG

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
ImageCreateFromJPEG | Hoch | ImageDashedLine


ImageDashedLine

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageCreateFromPNG | Hoch | ImageDestroy


ImageDestroy

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageDashedLine | Hoch | ImageFill


ImageFill

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageDestroy | Hoch | ImageFilledPolygon


ImageFilledPolygon

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageFill | Hoch | ImageFilledRectangle


ImageFilledRectangle

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageFilledPolygon | Hoch | ImageFillToBorder


ImageFillToBorder

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageFilledRectangle | Hoch | ImageFontHeight


ImageFontHeight

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageFillToBorder | Hoch | ImageFontWidth


ImageFontWidth

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageFontHeight | Hoch | ImageGammaCorrect


ImageGammaCorrect

(PHP 3>= 3.0.13, PHP 4 >= 4.0.0)

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 | Anfang | Vor
ImageFontWidth | Hoch | ImageGIF


ImageGIF

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageGammaCorrect | Hoch | ImageJPEG


ImageJPEG

(PHP 3>= 3.0.16, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImageGIF | Hoch | ImagePNG


ImagePNG

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
ImageJPEG | Hoch | ImageInterlace


ImageInterlace

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImagePNG | Hoch | ImageLine


ImageLine

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageInterlace | Hoch | ImageLoadFont


ImageLoadFont

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageLine | Hoch | ImagePolygon


ImagePolygon

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageLoadFont | Hoch | ImagePSBBox


ImagePSBBox

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePolygon | Hoch | ImagePSEncodeFont


ImagePSEncodeFont

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePSBBox | Hoch | ImagePsExtendFont


ImagePsExtendFont

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePSEncodeFont | Hoch | ImagePSFreeFont


ImagePSFreeFont

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

ImagePSFreeFont -- Gibt den durch einen Typ 1 PostScript-Font belegten Speicher wieder frei

Beschreibung:

void imagepsfreefont (int fontindex)

Siehe auch ImagePSLoadFont().

Zurück | Anfang | Vor
ImagePsExtendFont | Hoch | ImagePSLoadFont


ImagePSLoadFont

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePSFreeFont | Hoch | ImagePsSlantFont


ImagePsSlantFont

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePSLoadFont | Hoch | ImagePSText


ImagePSText

(PHP 3>= 3.0.9, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ImagePsSlantFont | Hoch | ImageRectangle


ImageRectangle

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImagePSText | Hoch | ImageSetPixel


ImageSetPixel

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageRectangle | Hoch | ImageString


ImageString

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageSetPixel | Hoch | ImageStringUp


ImageStringUp

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageString | Hoch | ImageSX


ImageSX

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageStringUp | Hoch | ImageSY


ImageSY

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageSX | Hoch | ImageTTFBBox


ImageTTFBBox

(PHP 3>= 3.0.1, PHP 4 )

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 | Anfang | Vor
ImageSY | Hoch | ImageTTFText


ImageTTFText

(PHP 3, PHP 4 )

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 | Anfang | Vor
ImageTTFBBox | Hoch | ImageTypes


ImageTypes

(PHP 3 CVS only, PHP 4 >= 4.0.2)

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 | Anfang | Vor
ImageTTFText | Hoch | read_exif_data


read_exif_data

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
ImageTypes | Hoch | IMAP, POP3 und NNTP Funktionen


IMAP, POP3 und NNTP Funktionen

PHP Handbuch
Zurück Vor

XXXII. IMAP, POP3 und NNTP Funktionen

Dieses Packet 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, daß diese Funktionen nicht auf das IMAP -Protokol 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_append — Fügt eine String-Nachricht an das angegebene Postfach an.
imap_base64 — Dekodiert BASE64-codierten Text
imap_body — Liest den Körper einer Nachricht
imap_check — Prüft den Status des aktuelle Postfachs
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_expunge — Löscht alle zum Löschen vorgemerkten Nachrichten
imap_fetchbody — Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht.
imap_fetchstructure — Liefert die Struktur der angegebenen Nachricht
imap_header — Liefert den Kopf einer Nachricht
imap_headers — Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
imap_listmailbox — Liefert eine Liste der Postfach-Namen
imap_getmailboxes — Liefert detailierte Informationen über eine Auswahl von Postfächern
imap_listsubscribed — Liefert eine Liste aller abbonierten Postfächer
imap_getsubscribed — Liefert eine Auswahl aller abbonierten Postfächer
imap_mail_copy — Kopiert Nachrichten in ein Postfach
imap_mail_move — Verschiebt Nachrichten in ein anderes Postfach
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_renamemailbox — Ändert den Namen eines Postfachs
imap_reopen — Wechselt das aktuelle Postfach der Verbindung
imap_subscribe — Abbonieren eines Postfachs
imap_undelete — Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
imap_unsubscribe — Abbonement eines Postfachs beenden
imap_qprint — Konvertiert einen quoted-printable kodierten String in einen 8bit-String
imap_8bit — Konvertiert einen String in einen quoted-printable kodierten String.
imap_binary — Konvertiert 8Bit-Text in einen BASE64-kodierten String.
imap_scanmailbox — Druchsucht Postfächer nach einen String
imap_mailboxmsginfo — Liefert Informationen über das aktuelle Postfach
imap_rfc822_write_address — Bildet aus Realnamen, Postfach und Server eine korekt formatierte Mail-Adresse
imap_rfc822_parse_adrlist — Parsen eines Adress-Strings
imap_setflag_full — Setzt Flags einer Nachricht
imap_clearflag_full — Löscht Flags einer Nachricht
imap_sort — Sortiert Nachrichten eines Postfachs
imap_fetchheader — Liefert den Kopf einer Nachricht
imap_uid — Liefert die UID zu einem gegeben Nachrichten-Index
imap_msgno — Liefert den aktuellen Nachrichten-Index zu einer UID
imap_search — Sucht Nachrichten, die den übergebenen Suchkriterien entsprechen
imap_last_error — Diese Funktion liefert die zuletzt während dieses Seitenzugriffs aufgetretene Fehlermeldung (falls vorhanden)
imap_errors — Diese Funktion liefert alle bisher aufgetretenen Fehlermeldungen
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_status — Liefert ausgewählte Statusinformationen zum angegebenen Postfach
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
imap_fetch_overview — Liefert einen Auszug aus den Header-Feldern von Nachrichten
imap_mime_header_decode — Decode MIME header elements
imap_mail_compose — Erzeugt eine MIME-Nachricht aus gegebenen Header- und Body-Teilen
imap_mail — Versendet eine Email
Zurück | Anfang | Vor
read_exif_data | Hoch | imap_append


imap_append

(PHP 3, PHP 4 )

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"
                    . "this is a test message, please ignore\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 | Anfang | Vor
IMAP, POP3 und NNTP Funktionen | Hoch | imap_base64


imap_base64

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_append | Hoch | imap_body


imap_body

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_base64 | Hoch | imap_check


imap_check

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_body | Hoch | imap_close


imap_close

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_check | Hoch | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_close | Hoch | imap_delete


imap_delete

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_createmailbox | Hoch | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_delete | Hoch | imap_expunge


imap_expunge

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_deletemailbox | Hoch | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_expunge | Hoch | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_fetchbody | Hoch | imap_header


imap_header

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_fetchstructure | Hoch | imap_headers


imap_headers

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_header | Hoch | imap_listmailbox


imap_listmailbox

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_headers | Hoch | imap_getmailboxes


imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_listmailbox | Hoch | imap_listsubscribed


imap_listsubscribed

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_getmailboxes | Hoch | imap_getsubscribed


imap_getsubscribed

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_listsubscribed | Hoch | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_getsubscribed | Hoch | imap_mail_move


imap_mail_move

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_mail_copy | Hoch | imap_num_msg


imap_num_msg

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_mail_move | Hoch | imap_num_recent


imap_num_recent

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_num_msg | Hoch | imap_open


imap_open

(PHP 3, PHP 4 )

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 muß immer mit angegeben werden. Enthält der Name eines Postfachs Zeichen außerhalb des druckbaren ASCII-Bereiches wie z.B. Umlaute oder das 'ß', so muß 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 | Anfang | Vor
imap_num_recent | Hoch | imap_ping


imap_ping

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_open | Hoch | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_ping | Hoch | imap_reopen


imap_reopen

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_renamemailbox | Hoch | imap_subscribe


imap_subscribe

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_reopen | Hoch | imap_undelete


imap_undelete

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_subscribe | Hoch | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_undelete | Hoch | imap_qprint


imap_qprint

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_unsubscribe | Hoch | imap_8bit


imap_8bit

(PHP 3, PHP 4 )

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 | Anfang | Vor
imap_qprint | Hoch | imap_binary


imap_binary

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
imap_8bit | Hoch | imap_scanmailbox


imap_scanmailbox

(PHP 3, PHP 4 )

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 giebt aber nur die Namen der Postfächer zurück, in denen irgendwo der Text content vorkommt.

Zurück | Anfang | Vor
imap_binary | Hoch | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
imap_scanmailbox | Hoch | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
imap_mailboxmsginfo | Hoch | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
imap_rfc822_write_address | Hoch | imap_setflag_full


imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
imap_rfc822_parse_adrlist | Hoch | imap_clearflag_full


imap_clearflag_full

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
imap_setflag_full | Hoch | imap_sort


imap_sort

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
imap_clearflag_full | Hoch | imap_fetchheader


imap_fetchheader

(PHP 3>= 3.0.3, PHP 4 )

imap_fetchheader -- Liefert den Kopf einer Nachricht

Beschreibung

stringimap_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 | Anfang | Vor
imap_sort | Hoch | imap_uid


imap_uid

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
imap_fetchheader | Hoch | imap_msgno


imap_msgno

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
imap_uid | Hoch | imap_search


imap_search

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_msgno | Hoch | imap_last_error


imap_last_error

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_search | Hoch | imap_errors


imap_errors

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 daß folgende Aufrufe von imap_errors() bzw. imap_last_errors() bis zum mächsten aufgetretenen Fehler kein Ergebnis liefern.

Zurück | Anfang | Vor
imap_last_error | Hoch | imap_alerts


imap_alerts

(PHP 3>= 3.0.12, PHP 4 >= 4.0b4)

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 daß weitere Aufrufe zunächst bis zum Auftreten eines neuen alerts kein Ergebnis liefern.

Die IMAP-Spezifikationen verlangen, daß diese Meldungen an den Benutzer weitergegeben werden.

Zurück | Anfang | Vor
imap_errors | Hoch | imap_status


imap_status

(PHP 3>= 3.0.4, PHP 4 )

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_lasterror() . "\n";
}
imap_close ($mbox);

Zurück | Anfang | Vor
imap_alerts | Hoch | imap_utf7_decode


imap_utf7_decode

(PHP 3>= 3.0.15, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_status | Hoch | imap_utf7_encode


imap_utf7_encode

(PHP 3>= 3.0.15, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_utf7_decode | Hoch | imap_utf8


imap_utf8

(PHP 3>= 3.0.13, PHP 4 >= 4.0RC1)

imap_utf8 -- Konvertiert Text zu UTF8

Beschreibung

string imap_utf8 (string text)

Konvertiert den übergebenen String in das UTF8-Format gemäß RFC2044.

Zurück | Anfang | Vor
imap_utf7_encode | Hoch | imap_fetch_overview


imap_fetch_overview

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
imap_utf8 | Hoch | imap_mime_header_decode


imap_mime_header_decode

(PHP 3>= 3.0.17, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
imap_fetch_overview | Hoch | imap_mail_compose


imap_mail_compose

(PHP 3>= 3.0.5, PHP 4 )

imap_mail_compose -- Erzeugt eine MIME-Nachricht aus gegebenen Header- und Body-Teilen

Beschreibung

string imap_mail_compose (array envelope, array body)

Zurück | Anfang | Vor
imap_mime_header_decode | Hoch | imap_mail


imap_mail

(PHP 3>= 3.0.14, PHP 4 >= 4.0b4)

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 | Anfang | Vor
imap_mail_compose | Hoch | Informix functions


Informix functions

PHP Handbuch
Zurück Vor

XXXIII. Informix functions

The Informix driver for Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x and IDS 2000 is implemented in "ifx.ec" and "php3_ifx.h" in the informix extension directory. IDS 7.x support is fairly complete, with full support for BYTE and TEXT columns. IUS 9.x support is partly finished: the new data types are there, but SLOB and CLOB support is still under construction.

Configuration notes: You need a version of ESQL/C to compile the PHP Informix driver. ESQL/C versions from 7.2x on should be OK. ESQL/C is now part of the Informix Client SDK.

Make sure that the "INFORMIXDIR" variable has been set, and that $INFORMIXDIR/bin is in your PATH before you run the "configure" script.

The configure script will autodetect the libraries and include directories, if you run "configure --with_informix=yes". You can overide this detection by specifying "IFX_LIBDIR", "IFX_LIBS" and "IFX_INCDIR" in the environment. The configure script will also try to detect your Informix server version. It will set the "HAVE_IFX_IUS" conditional compilation variable if your Informix version >= 9.00.

Runtime considerations: Make sure that the Informix environment variables INFORMIXDIR and INFORMIXSERVER are available to the PHP ifx driver, and that the INFORMIX bin directory is in the PATH. Check this by running a script that contains a call to phpinfo()() before you start testing. The phpinfo()() output should list these environment variables. This is true for both CGI php and Apache mod_php. You may have to set these environment variables in your Apache startup script.

The Informix shared libraries should also be available to the loader (check LD_LINBRARY_PATH or ld.so.conf/ldconfig).

Some notes on the use of BLOBs (TEXT and BYTE columns): BLOBs are normally addressed by BLOB identifiers. Select queries return a "blob id" for every BYTE and TEXT column. You can get at the contents with "string_var = ifx_get_blob($blob_id);" if you choose to get the BLOBs in memory (with : "ifx_blobinfile(0);"). If you prefer to receive the content of BLOB columns in a file, use "ifx_blobinfile(1);", and "ifx_get_blob($blob_id);" will get you the filename. Use normal file I/O to get at the blob contents.

For insert/update queries you must create these "blob id's" yourself with "ifx_create_blob();". You then plug the blob id's into an array, and replace the blob columns with a question mark (?) in the query string. For updates/inserts, you are responsible for setting the blob contents with ifx_update_blob().

The behaviour of BLOB columns can be altered by configuration variables that also can be set at runtime :

configuration variable : ifx.textasvarchar

configuration variable : ifx.byteasvarchar

runtime functions :

ifx_textasvarchar(0) : use blob id's for select queries with TEXT columns

ifx_byteasvarchar(0) : use blob id's for select queries with BYTE columns

ifx_textasvarchar(1) : return TEXT columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

ifx_byteasvarchar(1) : return BYTE columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

configuration variable : ifx.blobinfile

runtime function :

ifx_blobinfile_mode(0) : return BYTE columns in memory, the blob id lets you get at the contents.

ifx_blobinfile_mode(1) : return BYTE columns in a file, the blob id lets you get at the file name.

If you set ifx_text/byteasvarchar to 1, you can use TEXT and BYTE columns in select queries just like normal (but rather long) VARCHAR fields. Since all strings are "counted" in PHP, this remains "binary safe". It is up to you to handle this correctly. The returned data can contain anything, you are responsible for the contents.

If you set ifx_blobinfile to 1, use the file name returned by ifx_get_blob(..) to get at the blob contents. Note that in this case YOU ARE RESPONSIBLE FOR DELETING THE TEMPORARY FILES CREATED BY INFORMIX when fetching the row. Every new row fetched will create new temporary files for every BYTE column.

The location of the temporary files can be influenced by the environment variable "blobdir", default is "." (the current directory). Something like : putenv(blobdir=tmpblob"); will ease the cleaning up of temp files accidentally left behind (their names all start with "blb").

Automatically trimming "char" (SQLCHAR and SQLNCHAR) data: This can be set with the configuration variable

ifx.charasvarchar : if set to 1 trailing spaces will be automatically trimmed, to save you some "chopping".

NULL values: The configuration variable ifx.nullformat (and the runtime function ifx_nullformat()) when set to true will return NULL columns as the string "NULL", when set to false they return the empty string. This allows you to discriminate between NULL columns and empty columns.

Inhaltsverzeichnis
ifx_connect — Open Informix server connection
ifx_pconnect — Open persistent Informix connection
ifx_close — Close Informix connection
ifx_query — Send Informix query
ifx_prepare — Prepare an SQL-statement for execution
ifx_do — Execute a previously prepared SQL-statement
ifx_error — Returns error code of last Informix call
ifx_errormsg — Returns error message of last Informix call
ifx_affected_rows — Get number of rows affected by a query
ifx_getsqlca — Get the contents of sqlca.sqlerrd[0..5] after a query
ifx_fetch_row — Get row as enumerated array
ifx_htmltbl_result — Formats all rows of a query into a HTML table
ifx_fieldtypes — List of Informix SQL fields
ifx_fieldproperties — List of SQL fieldproperties
ifx_num_fields — Returns the number of columns in the query
ifx_num_rows — Count the rows already fetched from a query
ifx_free_result — Releases resources for the query
ifx_create_char — Creates an char object
ifx_free_char — Deletes the char object
ifx_update_char — Updates the content of the char object
ifx_get_char — Return the content of the char object
ifx_create_blob — Creates an blob object
ifx_copy_blob — Duplicates the given blob object
ifx_free_blob — Deletes the blob object
ifx_get_blob — Return the content of a blob object
ifx_update_blob — Updates the content of the blob object
ifx_blobinfile_mode — Set the default blob mode for all select queries
ifx_textasvarchar — Set the default text mode
ifx_byteasvarchar — Set the default byte mode
ifx_nullformat — Sets the default return value on a fetch row
ifxus_create_slob — Creates an slob object and opens it
ifxus_free_slob — Deletes the slob object
ifxus_close_slob — Deletes the slob object
ifxus_open_slob — Opens an slob object
ifxus_tell_slob — Returns the current file or seek position
ifxus_seek_slob — Sets the current file or seek position
ifxus_read_slob — Reads nbytes of the slob object
ifxus_write_slob — Writes a string into the slob object
Zurück | Anfang | Vor
imap_mail | Hoch | ifx_connect


ifx_connect

(PHP 3>= 3.0.3, PHP 4 )

ifx_connect -- Open Informix server connection

Description

int ifx_connect ([string database [, string userid [, string password]]])

Returns a connection identifier on success, or FALSE on error.

ifx_connect() establishes a connection to an Informix server. All of the arguments are optional, and if they're missing, defaults are taken from values supplied in configuration file (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

In case a second call is made to ifx_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 ifx_close().

See also ifx_pconnect(), and ifx_close().

Beispiel 1. Connect to a Informix database

$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");

Zurück | Anfang | Vor
Informix functions | Hoch | ifx_pconnect


ifx_pconnect

(PHP 3>= 3.0.3, PHP 4 )

ifx_pconnect -- Open persistent Informix connection

Description

int ifx_pconnect ([string database [, string userid [, string password]]])

Returns: A positive Informix persistent link identifier on success, or false on error

ifx_pconnect() acts very much like ifx_connect() with two major differences.

This function behaves exactly like ifx_connect() when PHP is not running as an Apache module. 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 (ifx_close() will not close links established by ifx_pconnect()).

This type of links is therefore called 'persistent'.

See also: ifx_connect().

Zurück | Anfang | Vor
ifx_connect | Hoch | ifx_close


ifx_close

(PHP 3>= 3.0.3, PHP 4 )

ifx_close -- Close Informix connection

Description

int ifx_close ([int link_identifier])

Returns: always true.

ifx_close() closes the link to an Informix database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

ifx_close() will not close persistent links generated by ifx_pconnect().

See also: ifx_connect(), and ifx_pconnect().

Beispiel 1. Closing a Informix connection

$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
... some queries and stuff ...
ifx_close($conn_id);

Zurück | Anfang | Vor
ifx_pconnect | Hoch | ifx_query


ifx_query

(PHP 3>= 3.0.3, PHP 4 )

ifx_query -- Send Informix query

Description

int ifx_query (string query [, int link_identifier [, int cursor_type [, mixed blobidarray]]])

Returns: A positive Informix result identifier on success, or false on error.

A "result_id" resource used by other functions to retrieve the query results. Sets "affected_rows" for retrieval by the ifx_affected_rows() function.

ifx_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 ifx_connect() was called, and use it.

Executes query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together. Non-select queries are "execute immediate". IFX_SCROLL and IFX_HOLD are symbolic constants and as such shouldn't be between quotes. I you omit this parameter the cursor is a normal sequential cursor.

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in an update query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

See also: ifx_connect().

Beispiel 1. Show all rows of the "orders" table as a html table

ifx_textasvarchar(1);      // use "text mode" for blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %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. Insert some values into the "catalog" table

                      // create blob id's for a byte and text column
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
                      // store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
                      // launch query
$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) {
  ... error ...
}
                     // free result id
ifx_free_result($res_id);

Zurück | Anfang | Vor
ifx_close | Hoch | ifx_prepare


ifx_prepare

(PHP 3>= 3.0.4, PHP 4 )

ifx_prepare -- Prepare an SQL-statement for execution

Description

int ifx_prepare (string query, int conn_id [, int cursor_def, mixed blobidarray])

Returns a integer result_id for use by ifx_do(). Sets affected_rows for retrieval by the ifx_affected_rows() function.

Prepares query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together.

For either query type the estimated number of affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

See also: ifx_do().

Zurück | Anfang | Vor
ifx_query | Hoch | ifx_do


ifx_do

(PHP 3>= 3.0.4, PHP 4 )

ifx_do -- Execute a previously prepared SQL-statement

Description

int ifx_do (int result_id)

Returns TRUE on success, FALSE on error.

Executes a previously prepared query or opens a cursor for it.

Does NOT free result_id on error.

Also sets the real number of ifx_affected_rows() for non-select statements for retrieval by ifx_affected_rows()

See also: ifx_prepare(). There is a example.

Zurück | Anfang | Vor
ifx_prepare | Hoch | ifx_error


ifx_error

(PHP 3>= 3.0.3, PHP 4 )

ifx_error -- Returns error code of last Informix call

Description

string ifx_error(void);

The Informix error codes (SQLSTATE & SQLCODE) formatted as follows :

x [SQLSTATE = aa bbb SQLCODE=cccc]

where x = space : no error

E : error

N : no more data

W : warning

? : undefined

If the "x" character is anything other than space, SQLSTATE and SQLCODE describe the error in more detail.

See the Informix manual for the description of SQLSTATE and SQLCODE

Returns in a string one character describing the general results of a statement and both SQLSTATE and SQLCODE associated with the most recent SQL statement executed. The format of the string is "(char) [SQLSTATE=(two digits) (three digits) SQLCODE=(one digit)]". The first character can be ' ' (space) (success), 'W' (the statement caused some warning), 'E' (an error happened when executing the statement) or 'N' (the statement didn't return any data).

See also: ifx_errormsg()

Zurück | Anfang | Vor
ifx_do | Hoch | ifx_errormsg


ifx_errormsg

(PHP 3>= 3.0.4, PHP 4 )

ifx_errormsg -- Returns error message of last Informix call

Description

string ifx_errormsg ([int errorcode])

Returns the Informix error message associated with the most recent Informix error, or, when the optional "errorcode" param is present, the error message corresponding to "errorcode".

See also: ifx_error()

printf("%s\n<br>", ifx_errormsg(-201));

Zurück | Anfang | Vor
ifx_error | Hoch | ifx_affected_rows


ifx_affected_rows

(PHP 3>= 3.0.3, PHP 4 )

ifx_affected_rows -- Get number of rows affected by a query

Description

int ifx_affected_rows (int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns the number of rows affected by a query associated with result_id.

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

See also: ifx_num_rows()

Beispiel 1. Informix affected rows

$rid = ifx_prepare ("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    ... error ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);
    die ("Please restrict your query<br>\n");
}

Zurück | Anfang | Vor
ifx_errormsg | Hoch | ifx_getsqlca


ifx_getsqlca

(PHP 3>= 3.0.8, PHP 4 )

ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query

Description

array ifx_getsqlca (int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns a pseudo-row (assiociative array) with sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] after the query associated with result_id.

For inserts, updates and deletes the values returned are those as set by the server after executing the query. This gives access to the number of affected rows and the serial insert value. For SELECTs the values are those saved after the PREPARE statement. This gives access to the *estimated* number of affected rows. The use of this function saves the overhead of executing a "select dbinfo('sqlca.sqlerrdx')" query, as it retrieves the values that were saved by the ifx driver at the appropriate moment.

Beispiel 1. Retrieve Informix sqlca.sqlerrd[x] values

/* assume the first column of 'sometable' is a 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 "The serial value of the inserted row is : " . $serial_value<br>\n";

Zurück | Anfang | Vor
ifx_affected_rows | Hoch | ifx_fetch_row


ifx_fetch_row

(PHP 3>= 3.0.3, PHP 4 )

ifx_fetch_row -- Get row as enumerated array

Description

array ifx_fetch_row (int result_id [, mixed position])

Returns an associative array that corresponds to the fetched row, or false if there are no more rows.

Blob columns are returned as integer blob id values for use in ifx_get_blob() unless you have used ifx_textasvarchar(1) or ifx_byteasvarchar(1), in which case blobs are returned as string values. Returns FALSE on error

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

position is an optional parameter for a "fetch" operation on "scroll" cursors: "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" or a number. If you specify a number, an "absolute" row fetch is executed. This parameter is optional, and only valid for SCROLL cursors.

ifx_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, with the column name as key.

Subsequent calls to ifx_fetch_row() would return the next row in the result set, or false if there are no more rows.

Beispiel 1. Informix fetch rows

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    ... error ...
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);
    die ("Please restrict your query<br>\n");
}
if (! ifx_do ($rid)) {
   ... error ...
}
$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 | Anfang | Vor
ifx_getsqlca | Hoch | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3>= 3.0.3, PHP 4 )

ifx_htmltbl_result -- Formats all rows of a query into a HTML table

Description

int ifx_htmltbl_result (int result_id [, string html_table_options])

Returns the number of rows fetched or FALSE on error.

Formats all rows of the result_id query into a html table. The optional second argument is a string of <table> tag options

Beispiel 1. Informix results as HTML table

$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
   ... error ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br>", $rowcount);
    die ("Please restrict your query<br>\n");
}
if (! ifx_do($rid) {
  ... error ...
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);

Zurück | Anfang | Vor
ifx_fetch_row | Hoch | ifx_fieldtypes


ifx_fieldtypes

(PHP 3>= 3.0.3, PHP 4 )

ifx_fieldtypes -- List of Informix SQL fields

Description

array ifx_fieldtypes (int result_id)

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for query with result_id. Returns FALSE on error.

Beispiel 1. Fielnames and SQL fieldtypes

$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 | Anfang | Vor
ifx_htmltbl_result | Hoch | ifx_fieldproperties


ifx_fieldproperties

(PHP 3>= 3.0.3, PHP 4 )

ifx_fieldproperties -- List of SQL fieldproperties

Description

array ifx_fieldproperties (int result_id)

Returns an associative array with fieldnames as key and the SQL fieldproperties as data for a query with result_id. Returns FALSE on error.

Returns the Informix SQL fieldproperies of every field in the query as an associative array. Properties are encoded as: "SQLTYPE;length;precision;scale;ISNULLABLE" where SQLTYPE = the Informix type like "SQLVCHAR" etc. and ISNULLABLE = "Y" or "N".

Beispiel 1. Informix SQL fieldproperties

$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 | Anfang | Vor
ifx_fieldtypes | Hoch | ifx_num_fields


ifx_num_fields

(PHP 3>= 3.0.3, PHP 4 )

ifx_num_fields -- Returns the number of columns in the query

Description

int ifx_num_fields (int result_id)

Returns the number of columns in query for result_id or FALSE on error

After preparing or executing a query, this call gives you the number of columns in the query.

Zurück | Anfang | Vor
ifx_fieldproperties | Hoch | ifx_num_rows


ifx_num_rows

(PHP 3>= 3.0.3, PHP 4 )

ifx_num_rows -- Count the rows already fetched from a query

Description

int ifx_num_rows (int result_id)

Gives the number of rows fetched so far for a query with result_id after a ifx_query() or ifx_do() query.

Zurück | Anfang | Vor
ifx_num_fields | Hoch | ifx_free_result


ifx_free_result

(PHP 3>= 3.0.3, PHP 4 )

ifx_free_result -- Releases resources for the query

Description

int ifx_free_result (int result_id)

Releases resources for the query associated with result_id. Returns FALSE on error.

Zurück | Anfang | Vor
ifx_num_rows | Hoch | ifx_create_char


ifx_create_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_create_char -- Creates an char object

Description

int ifx_create_char (string param)

Creates an char object. param should be the char content.

Zurück | Anfang | Vor
ifx_free_result | Hoch | ifx_free_char


ifx_free_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_free_char -- Deletes the char object

Description

int ifx_free_char (int bid)

Deletes the charobject for the given char object-id bid. Returns FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifx_create_char | Hoch | ifx_update_char


ifx_update_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_update_char -- Updates the content of the char object

Description

int ifx_update_char (int bid, string content)

Updates the content of the char object for the given char object bid. content is a string with new data. Returns FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifx_free_char | Hoch | ifx_get_char


ifx_get_char

(PHP 3>= 3.0.6, PHP 4 )

ifx_get_char -- Return the content of the char object

Description

int ifx_get_char (int bid)

Returns the content of the char object for the given char object-id bid.

Zurück | Anfang | Vor
ifx_update_char | Hoch | ifx_create_blob


ifx_create_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_create_blob -- Creates an blob object

Description

int ifx_create_blob (int type, int mode, string param)

Creates an blob object.

type: 1 = TEXT, 0 = BYTE

mode: 0 = blob-object holds the content in memory, 1 = blob-object holds the content in file.

param: if mode = 0: pointer to the content, if mode = 1: pointer to the filestring.

Return FALSE on error, otherwise the new blob object-id.

Zurück | Anfang | Vor
ifx_get_char | Hoch | ifx_copy_blob


ifx_copy_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_copy_blob -- Duplicates the given blob object

Description

int ifx_copy_blob (int bid)

Duplicates the given blob object. bid is the ID of the blob object.

Returns FALSE on error otherwise the new blob object-id.

Zurück | Anfang | Vor
ifx_create_blob | Hoch | ifx_free_blob


ifx_free_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_free_blob -- Deletes the blob object

Description

int ifx_free_blob (int bid)

Deletes the blobobject for the given blob object-id bid. Returns FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifx_copy_blob | Hoch | ifx_get_blob


ifx_get_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_get_blob -- Return the content of a blob object

Description

int ifx_get_blob (int bid)

Returns the content of the blob object for the given blob object-id bid.

Zurück | Anfang | Vor
ifx_free_blob | Hoch | ifx_update_blob


ifx_update_blob

(PHP 3>= 3.0.4, PHP 4 )

ifx_update_blob -- Updates the content of the blob object

Description

ifx_update_blob (int bid, string content)

Updates the content of the blob object for the given blob object bid. content is a string with new data. Returns FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifx_get_blob | Hoch | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3>= 3.0.4, PHP 4 )

ifx_blobinfile_mode -- Set the default blob mode for all select queries

Description

void ifx_blobinfile_mode (int mode)

Set the default blob mode for all select queries. Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file.

Zurück | Anfang | Vor
ifx_update_blob | Hoch | ifx_textasvarchar


ifx_textasvarchar

(PHP 3>= 3.0.4, PHP 4 )

ifx_textasvarchar -- Set the default text mode

Description

void ifx_textasvarchar (int mode)

Sets the default text mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Zurück | Anfang | Vor
ifx_blobinfile_mode | Hoch | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3>= 3.0.4, PHP 4 )

ifx_byteasvarchar -- Set the default byte mode

Description

void ifx_byteasvarchar (int mode)

Sets the default byte mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Zurück | Anfang | Vor
ifx_textasvarchar | Hoch | ifx_nullformat


ifx_nullformat

(PHP 3>= 3.0.4, PHP 4 )

ifx_nullformat -- Sets the default return value on a fetch row

Description

void ifx_nullformat (int mode)

Sets the default return value of a NULL-value on a fetch row. Mode "0" returns "", and mode "1" returns "NULL".

Zurück | Anfang | Vor
ifx_byteasvarchar | Hoch | ifxus_create_slob


ifxus_create_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_create_slob -- Creates an slob object and opens it

Description

int ifxus_create_slob (int mode)

Creates an slob object and opens it. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. You can also use constants named IFX_LO_RDONLY, IFX_LO_WRONLY etc. Return FALSE on error otherwise the new slob object-id.

Zurück | Anfang | Vor
ifx_nullformat | Hoch | ifxus_free_slob


ifxus_free_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_free_slob -- Deletes the slob object

Description

int ifxus_free_slob (int bid)

Deletes the slob object. bid is the Id of the slob object. Returns FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifxus_create_slob | Hoch | ifxus_close_slob


ifxus_close_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_close_slob -- Deletes the slob object

Description

int ifxus_close_slob (int bid)

Deletes the slob object on the given slob object-id bid. Return FALSE on error otherwise TRUE.

Zurück | Anfang | Vor
ifxus_free_slob | Hoch | ifxus_open_slob


ifxus_open_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_open_slob -- Opens an slob object

Description

int ifxus_open_slob (long bid, int mode)

Opens an slob object. bid should be an existing slob id. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. Returns FALSE on error otherwise the new slob object-id.

Zurück | Anfang | Vor
ifxus_close_slob | Hoch | ifxus_tell_slob


ifxus_tell_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_tell_slob -- Returns the current file or seek position

Description

int ifxus_tell_slob (long bid)

Returns the current file or seek position of an open slob object bid should be an existing slob id. Return FALSE on error otherwise the seek position.

Zurück | Anfang | Vor
ifxus_open_slob | Hoch | ifxus_seek_slob


ifxus_seek_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_seek_slob -- Sets the current file or seek position

Description

int ifxus_seek_blob (long bid, int mode, long offset)

Sets the current file or seek position of an open slob object. bid should be an existing slob id. Modes: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END and offset is an byte offset. Return FALSE on error otherwise the seek position.

Zurück | Anfang | Vor
ifxus_tell_slob | Hoch | ifxus_read_slob


ifxus_read_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_read_slob -- Reads nbytes of the slob object

Description

int ifxus_read_slob (long bid, long nbytes)

Reads nbytes of the slob object. bid is a existing slob id and nbytes is the number of bytes zu read. Return FALSE on error otherwise the string.

Zurück | Anfang | Vor
ifxus_seek_slob | Hoch | ifxus_write_slob


ifxus_write_slob

(PHP 3>= 3.0.4, PHP 4 )

ifxus_write_slob -- Writes a string into the slob object

Description

int ifxus_write_slob (long bid, string content)

Writes a string into the slob object. bid is a existing slob id and content the content to write. Return FALSE on error otherwise bytes written.

Zurück | Anfang | Vor
ifxus_read_slob | Hoch | InterBase-Funktionen


InterBase-Funktionen

PHP Handbuch
Zurück Vor

XXXIV. 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_connect — Öffnet eine Verbindung zu einer InterBase-Datenbank
ibase_pconnect — Erzeugt eine permanente Verbindung zu einer InterBase-Datenbank
ibase_close — Schließt die Verbindung zu einer InterBase-Datenbank
ibase_query — Führt eine Abfrage (Query) auf eine InterBase-DB aus
ibase_fetch_row — Liest einen Datensatz aus einer InterBase-Datenbank
ibase_fetch_object — Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
ibase_free_result — Gibt den Speicher eines Abfrage-Ergebnisses frei
ibase_prepare — Vorbereitung einer Abfrage für den folgenden Gebrauch von Parameter-Platzhaltern und für die eigentliche Ausführung.
ibase_execute — Ausführen einer vorbereiteten Abfrage
ibase_free_query — Gibt den Speicher einer vorbereiteten Abfrage wieder frei
ibase_timefmt — Bestimmt das Format von Zeitstempel-, Datums- und Zeit-Feldern, die von einer Abfrage zurück gegeben werden
ibase_num_fields — Ermittelt die Anzahl der Felder einer Ergebnis-Liste
Zurück | Anfang | Vor
ifxus_write_slob | Hoch | ibase_connect


ibase_connect

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
InterBase-Funktionen | Hoch | ibase_pconnect


ibase_pconnect

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_connect | Hoch | ibase_close


ibase_close

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_pconnect | Hoch | ibase_query


ibase_query

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_close | Hoch | ibase_fetch_row


ibase_fetch_row

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_query | Hoch | ibase_fetch_object


ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ibase_fetch_row | Hoch | ibase_free_result


ibase_free_result

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_fetch_object | Hoch | ibase_prepare


ibase_prepare

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_free_result | Hoch | ibase_execute


ibase_execute

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_prepare | Hoch | ibase_free_query


ibase_free_query

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_execute | Hoch | ibase_timefmt


ibase_timefmt

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ibase_free_query | Hoch | ibase_num_fields


ibase_num_fields

(PHP 3>= 3.0.7, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ibase_timefmt | Hoch | Ingres II functions


Ingres II functions

PHP Handbuch
Zurück Vor

XXXV. Ingres II functions

These functions allow you to access Ingres II database servers.

In order to have these functions available, you must compile php with Ingres support by using the --with-ingres option. You need the Open API library and header files included with Ingres II. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environement variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

Anmerkung: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be commited or rolled back before opening another transaction (which is automaticaly done when sending the first query).

Inhaltsverzeichnis
ingres_connect — Open a connection to an Ingres II database.
ingres_pconnect — Open a persistent connection to an Ingres II database.
ingres_close — Close an Ingres II database connection
ingres_query — Send a SQL query to Ingres II
ingres_num_rows — Get the number of rows affected or returned by the last query
ingres_num_fields — Get the number of fields returned by the last query
ingres_field_name — Get the name of a field in a query result.
ingres_field_type — Get the type of a field in a query result.
ingres_field_nullable — Test if a field is nullable.
ingres_field_length — Get the length of a field.
ingres_field_precision — Get the precision of a field.
ingres_field_scale — Get the scale of a field.
ingres_fetch_array — Fetch a row of result into an array.
ingres_fetch_row — Fetch a row of result into an enumerated array.
ingres_fetch_object — Fetch a row of result into an object.
ingres_rollback — Roll back a transaction.
ingres_commit — Commit a transaction.
ingres_autocommit — Switch autocommit on or off.
Zurück | Anfang | Vor
ibase_num_fields | Hoch | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2)

ingres_connect -- Open a connection to an Ingres II database.

Description

resource ingres_connect ([string database [, string username [, string password]]])

Returns a Ingres II link resource on success, or false on failure.

ingres_connect() opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class].

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user and ingres.default_password.

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

Beispiel 1. ingres_connect() example

<?php
    $link = ingres_connect ("mydb", "user", "pass")
        or die ("Could not connect");
    print ("Connected successfully");
    ingres_close ($link);
?>

Beispiel 2. ingres_connect() example using default link

<?php
    ingres_connect ("mydb", "user", "pass")
        or die ("Could not connect");
    print ("Connected successfully");
    ingres_close ();
?>

See also ingres_pconnect(), and ingres_close().

Zurück | Anfang | Vor
Ingres II functions | Hoch | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2)

ingres_pconnect -- Open a persistent connection to an Ingres II database.

Description

resource ingres_pconnect ([string database [, string username [, string password]]])

Returns a Ingres II link resource on success, or false on failure.

See ingres_connect() for parameters details and examples. There are only 2 differences between ingres_pconnect() and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

See also ingres_connect(), and ingres_close().

Zurück | Anfang | Vor
ingres_connect | Hoch | ingres_close


ingres_close

(PHP 4 >= 4.0.2)

ingres_close -- Close an Ingres II database connection

Description

boolingres_close ([resource link])

Returns true on success, or false on failure.

ingres_close() closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

See also ingres_connect(), and ingres_pconnect().

Zurück | Anfang | Vor
ingres_pconnect | Hoch | ingres_query


ingres_query

(PHP 4 >= 4.0.2)

ingres_query -- Send a SQL query to Ingres II

Description

boolingres_query (string query [, resource link])

Returns true on success, or false on failure.

ingres_query() sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide)

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediatly commited.

Some types of SQL queries can't be sent with this function :

  • close (see ingres_close()).

  • commit (see ingres_commit()).

  • connect (see ingres_connect()).

  • disconnect (see ingres_close()).

  • get dbevent

  • prepare to commit

  • rollback (see ingres_rollback()).

  • savepoint

  • set autocommit (see ingres_autocommit()).

  • all cursor related queries are unsupported

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];
}
?>

See also
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback() and
ingres_autocommit().

Zurück | Anfang | Vor
ingres_close | Hoch | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2)

ingres_num_rows -- Get the number of rows affected or returned by the last query

Description

intingres_num_rows ([resource link])

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Anmerkung: This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns false, indicating that no more results are available.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_query | Hoch | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2)

ingres_num_fields -- Get the number of fields returned by the last query

Description

intingres_num_fields ([resource link])

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_num_rows | Hoch | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2)

ingres_field_name -- Get the name of a field in a query result.

Description

stringingres_field_name (int index [, resource link])

ingres_field_name() returns the name of a field in a query result, or false on failure.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_num_fields | Hoch | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2)

ingres_field_type -- Get the type of a field in a query result.

Description

stringingres_field_type (int index [, resource link])

ingres_field_type() returns the type of a field in a query result, or false on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_name | Hoch | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2)

ingres_field_nullable -- Test if a field is nullable.

Description

boolingres_field_nullable (int index [, resource link])

ingres_field_nullable() returns true if the field can be set to the NULL value and false if it can't.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_type | Hoch | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2)

ingres_field_length -- Get the length of a field.

Description

intingres_field_length (int index [, resource link])

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_nullable | Hoch | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2)

ingres_field_precision -- Get the precision of a field.

Description

intingres_field_precision (int index [, resource link])

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_length | Hoch | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2)

ingres_field_scale -- Get the scale of a field.

Description

intingres_field_scale (int index [, resource link])

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_precision | Hoch | ingres_fetch_array


ingres_fetch_array

(PHP 4 >= 4.0.2)

ingres_fetch_array -- Fetch a row of result into an array.

Description

arrayingres_fetch_array ([int result_type [, resource link]])

ingres_fetch_array() Returns an array that corresponds to the fetched row, or false if there are no more rows.

This function is an extended version of ingres_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 use the numeric index of the column or make an alias for the column.

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 can be II_NUM for enumerated array, II_ASSOC for associative array, or II_BOTH (default).

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Beispiel 1. ingres_fetch_array() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  # using associative array
    echo $row["fullname"];
    echo $row[1];          # using enumerated array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_field_scale | Hoch | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2)

ingres_fetch_row -- Fetch a row of result into an enumerated array.

Description

arrayingres_fetch_row ([resource link])

ingres_fetch_row() returns an array that corresponds to the fetched row, or false if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or false if there are no more rows.

Beispiel 1. ingres_fetch_row() example

<?php
ingres_connect ($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_num_fields(),
ingres_query(),
ingres_fetch_array() and
ingres_fetch_object().

Zurück | Anfang | Vor
ingres_fetch_array | Hoch | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2)

ingres_fetch_object -- Fetch a row of result into an object.

Description

objectingres_fetch_object ([int result_type [, resource link]])

ingres_fetch_object() Returns an object that corresponds to the fetched row, or false if there are no more rows.

This function is similar to ingres_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: II_ASSOC, II_NUM, and II_BOTH.

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Beispiel 1. ingres_fetch_object() example

<?php
ingres_connect ($database, $user, $password);
ingres_query ("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array() and
ingres_fetch_row().

Zurück | Anfang | Vor
ingres_fetch_row | Hoch | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2)

ingres_rollback -- Roll back a transaction.

Description

boolingres_rollback ([resource link])

ingres_rollback() rolls back the currently open transaction, actualy canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

See also
ingres_query(),
ingres_commit() and
ingres_autocommit().

Zurück | Anfang | Vor
ingres_fetch_object | Hoch | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2)

ingres_commit -- Commit a transaction.

Description

boolingres_commit ([resource link])

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automaticaly after every query by calling ingres_autocommit() before opening the transaction.

See also
ingres_query(),
ingres_rollback() and
ingres_autocommit().

Zurück | Anfang | Vor
ingres_rollback | Hoch | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2)

ingres_autocommit -- Switch autocommit on or off.

Description

boolingres_autocommit ([resource link])

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_autocommit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automaticaly commited by the server, as if ingres_commit() was called after every call to ingres_query().

See also
ingres_query(),
ingres_rollback() and
ingres_commit().

Zurück | Anfang | Vor
ingres_commit | Hoch | LDAP functions


LDAP functions

PHP Handbuch
Zurück Vor

XXXVI. LDAP functions

Introduction to LDAP

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like

/usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be.

cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as ..

country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Complete code example

Retrieve information for all entries where the surname starts with "S" from a directory server, displaying an extract with name and email address.

Beispiel 1. LDAP search example

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost");  // must be a valid LDAP server!
echo "connect result is ".$ds."<p>";

if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);     // this is an "anonymous" bind, typically
                           // read-only access
    echo "Bind result is ".$r."<p>";

    echo "Searching for (sn=S*) ...";
    // Search surname entry
    $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
    echo "Search result is ".$sr."<p>";

    echo "Number of entires returned is ".ldap_count_entries($ds,$sr)."<p>";

    echo "Getting entries ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Data for ".$info["count"]." items returned:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn is: ". $info[$i]["dn"] ."<br>";
        echo "first cn entry is: ". $info[$i]["cn"][0] ."<br>";
        echo "first email entry is: ". $info[$i]["mail"][0] ."<p>";
    }

    echo "Closing connection";
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

Using the PHP LDAP calls

You will need to get and compile LDAP client libraries from either the University of Michigan ldap-3.3 package or the Netscape Directory SDK 3.0. You will also need to recompile PHP with LDAP support enabled before PHP's LDAP calls will work.

Before you can use the LDAP calls you will need to know ..

  • The name or address of the directory server you will use

  • The "base dn" of the server (the part of the world directory that is held on this server, which could be "o=My Company,c=US")

  • Whether you need a password to access the server (many servers will provide read access for an "anonymous bind" but require a password for anything else)

The typical sequence of LDAP calls you will make in an application will follow this pattern:

ldap_connect() // establish connection to server
|
ldap_bind() // anonymous or authenticated "login"
|
do something like search or update the directory
and display the results
|
ldap_close() // "logout"

More Information

Lots of information about LDAP can be found at

  • Netscape

  • University of Michigan

  • OpenLDAP Project

  • LDAP World

The Netscape SDK contains a helpful Programmer's Guide in .html format.

Inhaltsverzeichnis
ldap_add — Add entries to LDAP directory
ldap_bind — Bind to LDAP directory
ldap_close — Close link to LDAP server
ldap_compare — Compare value of attribute found in entry specified with DN
ldap_connect — Connect to an LDAP server
ldap_count_entries — Count the number of entries in a search
ldap_delete — Delete an entry from a directory
ldap_dn2ufn — Convert DN to User Friendly Naming format
ldap_err2str — Convert LDAP error number into string error message
ldap_errno — Return the LDAP error number of the last LDAP command
ldap_error — Return the LDAP error message of the last LDAP command
ldap_explode_dn — Splits DN into its component parts
ldap_first_attribute — Return first attribute
ldap_first_entry — Return first result id
ldap_free_result — Free result memory
ldap_get_attributes — Get attributes from a search result entry
ldap_get_dn — Get the DN of a result entry
ldap_get_entries — Get all result entries
ldap_get_option — Get the current value for given option
ldap_get_values — Get all values from a result entry
ldap_get_values_len — Get all binary values from a result entry
ldap_list — Single-level search
ldap_modify — Modify an LDAP entry
ldap_mod_add — Add attribute values to current attributes
ldap_mod_del — Delete attribute values from current attributes
ldap_mod_replace — Replace attribute values with new ones
ldap_next_attribute — Get the next attribute in result
ldap_next_entry — Get next result entry
ldap_read — Read an entry
ldap_search — Search LDAP tree
ldap_set_option — Set the value of the given option
ldap_unbind — Unbind from LDAP directory
Zurück | Anfang | Vor
ingres_autocommit | Hoch | ldap_add


ldap_add

(PHP 3, PHP 4 )

ldap_add -- Add entries to LDAP directory

Description

int ldap_add (int link_identifier, string dn, array entry)

returns true on success and false on error.

The ldap_add() function is used to add entries in the LDAP directory. The DN of the entry to be added is specified by dn. Array entry specifies the information about the entry. The values in the entries are indexed by individual attributes. In case of multiple values for an attribute, they are indexed using integers starting with 0.

entry["attribute1"] = value
entry["attribute2"][0] = value1
entry["attribute2"][1] = value2

Beispiel 1. Complete example with authenticated bind

<?php
$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $r=ldap_bind($ds,"cn=root, o=My Company, c=US", "secret");

    // prepare data
    $info["cn"]="John Jones";
    $info["sn"]="Jones";
    $info["mail"]="jonj@here.and.now";
    $info["objectclass"]="person";

    // add data to directory
    $r=ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

Zurück | Anfang | Vor
LDAP functions | Hoch | ldap_bind


ldap_bind

(PHP 3, PHP 4 )

ldap_bind -- Bind to LDAP directory

Description

int ldap_bind (int link_identifier [, string bind_rdn [, string bind_password]])

Binds to the LDAP directory with specified RDN and password. Returns true on success and false on error.

ldap_bind() does a bind operation on the directory. bind_rdn and bind_password are optional. If not specified, anonymous bind is attempted.

Zurück | Anfang | Vor
ldap_add | Hoch | ldap_close


ldap_close

(PHP 3, PHP 4 )

ldap_close -- Close link to LDAP server

Description

int ldap_close (int link_identifier)

Returns true on success, false on error.

ldap_close() closes the link to the LDAP server that's associated with the specified link_identifier.

This call is internally identical to ldap_unbind(). The LDAP API uses the call ldap_unbind(), so perhaps you should use this in preference to ldap_close().

Zurück | Anfang | Vor
ldap_bind | Hoch | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2)

ldap_compare -- Compare value of attribute found in entry specified with DN

Description

int ldap_compare (int link_identifier, string dn, string attribute, string value)

Returns true if value matches otherwise returns false. Returns -1 on error.

ldap_compare() is used to compare value of attribute to value of same attribute in LDAP directory entry specified with dn.

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Beispiel 1. Complete example of password check

<?php

$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    // bind
    if(ldap_bind($ds)) {

        // prepare data
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compare value
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: ".ldap_error($ds);
        } elseif ($r === TRUE) {
            echo "Password correct.";
        } elseif ($r === FALSE) {
            echo "Wrong guess! Password incorrect.";
        }

    } else {
        echo "Unable to bind to LDAP server.";
    }

    ldap_close($ds);

} else {
    echo "Unable to connect to LDAP server.";
}
?>

Anmerkung: ldap_compare() can NOT be used to compare BINARY values!

Anmerkung: This function was added in 4.0.2.

Zurück | Anfang | Vor
ldap_close | Hoch | ldap_connect


ldap_connect

(PHP 3, PHP 4 )

ldap_connect -- Connect to an LDAP server

Description

int ldap_connect ([string hostname [, int port]])

Returns a positive LDAP link identifier on success, or false on error.

ldap_connect() establishes a connection to a LDAP server on a specified hostname and port. Both the arguments are optional. If no arguments are specified then the link identifier of the already opened link will be returned. If only hostname is specified, then the port defaults to 389.

If you are using OpenLDAP 2.x.x you can specify a URL instead of the hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL support, configure PHP with SSL, and use ldaps://hostname/ as host parameter. The port parameter is not used when using URLs. URL and SSL support were added in 4.0.4.

Zurück | Anfang | Vor
ldap_compare | Hoch | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4 )

ldap_count_entries -- Count the number of entries in a search

Description

int ldap_count_entries (int link_identifier, int result_identifier)

Returns number of entries in the result or false on error.

ldap_count_entries() returns the number of entries stored in the result of previous search operations. result_identifier identifies the internal ldap result.

Zurück | Anfang | Vor
ldap_connect | Hoch | ldap_delete


ldap_delete

(PHP 3, PHP 4 )

ldap_delete -- Delete an entry from a directory

Description

int ldap_delete (int link_identifier, string dn)

Returns true on success and false on error.

ldap_delete() function delete a particular entry in LDAP directory specified by dn.

Zurück | Anfang | Vor
ldap_count_entries | Hoch | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4 )

ldap_dn2ufn -- Convert DN to User Friendly Naming format

Description

string ldap_dn2ufn (string dn)

ldap_dn2ufn() function is used to turn a DN into a more user-friendly form, stripping off type names.

Zurück | Anfang | Vor
ldap_delete | Hoch | ldap_err2str


ldap_err2str

(PHP 3>= 3.0.13, PHP 4 >= 4.0RC2)

ldap_err2str -- Convert LDAP error number into string error message

Description

string ldap_err2str (int errno)

returns string error message.

This function returns the string error message explaining the error number errno. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

See also ldap_errno() and ldap_error().

Beispiel 1. Enumerating all LDAP error messages

<?php
  for($i=0; $i<100; $i++) {
    printf("Error $i: %s<br>\n", ldap_err2str($i));
  }
?>

Zurück | Anfang | Vor
ldap_dn2ufn | Hoch | ldap_errno


ldap_errno

(PHP 3>= 3.0.12, PHP 4 >= 4.0RC2)

ldap_errno -- Return the LDAP error number of the last LDAP command

Description

int ldap_errno (int link_id)

return the LDAP error number of the last LDAP command for this link.

This function returns the standardized error number returned by the last LDAP command for the given link identifier. This number can be converted into a textual error message using ldap_err2str().

Unless you lower your warning level in your php3.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Beispiel 1. Generating and catching an error

<?php
// This example contains an error, which we will catch.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// syntax error in filter expression (errno 87),
// must be "objectclass=*" to work.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    printf("LDAP-Errno: %s<br>\n", ldap_errno($ld));
    printf("LDAP-Error: %s<br>\n", ldap_error($ld));
    die("Argh!<br>\n");
}
$info = ldap_get_entries($ld, $res);
printf("%d matching entries.<br>\n", $info["count"]);
?>

see also ldap_err2str() and ldap_error().

Zurück | Anfang | Vor
ldap_err2str | Hoch | ldap_error


ldap_error

(PHP 3>= 3.0.12, PHP 4 >= 4.0RC2)

ldap_error -- Return the LDAP error message of the last LDAP command

Description

string ldap_error (int link_id)

returns string error message.

This function returns the string error message explaining the error generated by the last LDAP command for the given link identifier. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Unless you lower your warning level in your php3.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

see also ldap_err2str() and ldap_errno().

Zurück | Anfang | Vor
ldap_errno | Hoch | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4 )

ldap_explode_dn -- Splits DN into its component parts

Description

array ldap_explode_dn (string dn, int with_attrib)

ldap_explode_dn() function is used to split the a DN returned by ldap_get_dn() and breaks it up into its component parts. Each part is known as Relative Distinguished Name, or RDN. ldap_explode_dn() returns an array of all those components. with_attrib is used to request if the RDNs are returned with only values or their attributes as well. To get RDNs with the attributes (i.e. in attribute=value format) set with_attrib to 0 and to get only values set it to 1.

Zurück | Anfang | Vor
ldap_error | Hoch | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4 )

ldap_first_attribute -- Return first attribute

Description

string ldap_first_attribute (int link_identifier, int result_entry_identifier, int ber_identifier)

Returns the first attribute in the entry on success and false on error.

Similar to reading entries, attributes are also read one by one from a particular entry. ldap_first_attribute() returns the first attribute in the entry pointed by the entry identifier. Remaining attributes are retrieved by calling ldap_next_attribute() successively. ber_identifier is the identifier to internal memory location pointer. It is passed by reference. The same ber_identifier is passed to the ldap_next_attribute() function, which modifies that pointer.

see also ldap_get_attributes()

Zurück | Anfang | Vor
ldap_explode_dn | Hoch | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4 )

ldap_first_entry -- Return first result id

Description

int ldap_first_entry (int link_identifier, int result_identifier)

Returns the result entry identifier for the first entry on success and false on error.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions. ldap_first_entry() returns the entry identifier for first entry in the result. This entry identifier is then supplied to lap_next_entry() routine to get successive entries from the result.

see also ldap_get_entries().

Zurück | Anfang | Vor
ldap_first_attribute | Hoch | ldap_free_result


ldap_free_result

(PHP 3, PHP 4 )

ldap_free_result -- Free result memory

Description

int ldap_free_result (int result_identifier)

Returns true on success and false on error.

ldap_free_result() frees up the memory allocated internally to store the result and pointed by the result_identifier. All result memory will be automatically freed when the script terminates.

Typically all the memory allocated for the ldap result gets freed at the end of the script. In case the script is making successive searches which return large result sets, ldap_free_result() could be called to keep the runtime memory usage by the script low.

Zurück | Anfang | Vor
ldap_first_entry | Hoch | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4 )

ldap_get_attributes -- Get attributes from a search result entry

Description

array ldap_get_attributes (int link_identifier, int result_entry_identifier)

Returns a complete entry information in a multi-dimensional array on success and false on error.

ldap_get_attributes() function is used to simplify reading the attributes and values from an entry in the search result. The return value is a multi-dimensional array of attributes and values.

Having located a specific entry in the directory, you can find out what information is held for that entry by using this call. You would use this call for an application which "browses" directory entries and/or where you do not know the structure of the directory entries. In many applications you will be searching for a specific attribute such as an email address or a surname, and won't care what other data is held.

return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = ith value of the attribute

Beispiel 1. Show the list of attributes held for a particular directory entry

// $ds is the link identifier for the directory

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"]." attributes held for this entry:<p>";

for ($i=0; $i<$attrs["count"]; $i++)
    echo $attrs[$i]."<br>";

see also ldap_first_attribute() and ldap_next_attribute()

Zurück | Anfang | Vor
ldap_free_result | Hoch | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4 )

ldap_get_dn -- Get the DN of a result entry

Description

string ldap_get_dn (int link_identifier, int result_entry_identifier)

Returns the DN of the result entry and false on error.

ldap_get_dn() function is used to find out the DN of an entry in the result.

Zurück | Anfang | Vor
ldap_get_attributes | Hoch | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4 )

ldap_get_entries -- Get all result entries

Description

array ldap_get_entries (int link_identifier, int result_identifier)

Returns a complete result information in a multi-dimenasional array on success and false on error.

ldap_get_entries() function is used to simplify reading multiple entries from the result and then reading the attributes and multiple values. The entire information is returned by one function call in a multi-dimensional array. The structure of the array is as follows.

The attribute index is converted to lowercase. (Attributes are case-insensitive for directory servers, but not when used as array indices)

return_value["count"] = number of entries in the result
return_value[0] : refers to the details of first entry

return_value[i]["dn"] = DN of the ith entry in the result

return_value[i]["count"] = number of attributes in ith entry
return_value[i][j] = jth attribute in the ith entry in the result

return_value[i]["attribute"]["count"] = number of values for
attribute in ith entry
return_value[i]["attribute"][j] = jth value of attribute in ith entry

see also ldap_first_entry() and ldap_next_entry()

Zurück | Anfang | Vor
ldap_get_dn | Hoch | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4)

ldap_get_option -- Get the current value for given option

Description

boolean ldap_get_option (int link_identifier, int option, mixed retval)

Sets retval to the value of the specified option, and returns true on success and false on error.

The parameter option can be one of: 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. These are described in draft-ietf-ldapext-ldap-c-api-xx.txt

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Beispiel 1. Check protocol version

// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version))
    echo "Using protocol version $version";
else
    echo "Unable to determine protocol version";

See also ldap_set_option().

Zurück | Anfang | Vor
ldap_get_entries | Hoch | ldap_get_values


ldap_get_values

(PHP 3, PHP 4 )

ldap_get_values -- Get all values from a result entry

Description

array ldap_get_values (int link_identifier, int result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and false on error.

ldap_get_values() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This call needs a result_entry_identifier, so needs to be preceded by one of the ldap search calls and one of the calls to get an individual entry.

You application will either be hard coded to look for certain attributes (such as "surname" or "mail") or you will have to use the ldap_get_attributes() call to work out what attributes exist for a given entry.

LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"

return_value["count"] = number of values for attribute
return_value[0] = first value of attribute
return_value[i] = ith value of attribute

Beispiel 1. List all values of the "mail" attribute for a directory entry

// $ds is a valid link identifier for a directory server

// $sr is a valid search result from a prior call to
//     one of the ldap directory search calls

// $entry is a valid entry identifier from a prior call to
//        one of the calls that returns a directory entry

$values = ldap_get_values($ds, $entry,"mail");

echo $values["count"]." email addresses for this entry.<p>";

for ($i=0; $i < $values["count"]; $i++)
    echo $values[$i]."<br>";

Zurück | Anfang | Vor
ldap_get_option | Hoch | ldap_get_values_len


ldap_get_values_len

(PHP 3>= 3.0.13, PHP 4 >= 4.0RC2)

ldap_get_values_len -- Get all binary values from a result entry

Description

array ldap_get_values_len (int link_identifier, int result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and false on error.

ldap_get_values_len() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

Anmerkung: This function was added in 4.0.

Zurück | Anfang | Vor
ldap_get_values | Hoch | ldap_list


ldap_list

(PHP 3, PHP 4 )

ldap_list -- Single-level search

Description

int ldap_list (int link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or false on error.

ldap_list() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL means that the search should only return information that is at the level immediately below the base dn given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

This call takes 5 optional parameters. See ldap_search() notes.

Anmerkung: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

Beispiel 1. Produce a list of all organizational units of an organization

// $ds is a valid link identifier for a directory server

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr=ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++)
    echo $info[$i]["ou"][0] ;

Zurück | Anfang | Vor
ldap_get_values_len | Hoch | ldap_modify


ldap_modify

(PHP 3, PHP 4 )

ldap_modify -- Modify an LDAP entry

Description

int ldap_modify (int link_identifier, string dn, array entry)

Returns true on success and false on error.

ldap_modify() function is used to modify the existing entries in the LDAP directory. The structure of the entry is same as in ldap_add().

Zurück | Anfang | Vor
ldap_list | Hoch | ldap_mod_add


ldap_mod_add

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_add -- Add attribute values to current attributes

Description

int ldap_mod_add (int link_identifier, string dn, array entry)

returns true on success and false on error.

This function adds attribute(s) to the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level additions are done by the ldap_add() function.

Zurück | Anfang | Vor
ldap_modify | Hoch | ldap_mod_del


ldap_mod_del

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_del -- Delete attribute values from current attributes

Description

int ldap_mod_del (int link_identifier, string dn, array entry)

returns true on success and false on error.

This function removes attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level deletions are done by the ldap_del() function.

Zurück | Anfang | Vor
ldap_mod_add | Hoch | ldap_mod_replace


ldap_mod_replace

(PHP 3>= 3.0.8, PHP 4 )

ldap_mod_replace -- Replace attribute values with new ones

Description

int ldap_mod_replace (int link_identifier, string dn, array entry)

returns true on success and false on error.

This function replaces attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level modifications are done by the ldap_modify() function.

Zurück | Anfang | Vor
ldap_mod_del | Hoch | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4 )

ldap_next_attribute -- Get the next attribute in result

Description

string ldap_next_attribute (int link_identifier, int result_entry_identifier, int ber_identifier)

Returns the next attribute in an entry on success and false on error.

ldap_next_attribute() is called to retrieve the attributes in an entry. The internal state of the pointer is maintained by the ber_identifier. It is passed by reference to the function. The first call to ldap_next_attribute() is made with the result_entry_identifier returned from ldap_first_attribute().

see also ldap_get_attributes()

Zurück | Anfang | Vor
ldap_mod_replace | Hoch | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4 )

ldap_next_entry -- Get next result entry

Description

int ldap_next_entry (int link_identifier, int result_entry_identifier)

Returns entry identifier for the next entry in the result whose entries are being read starting with ldap_first_entry(). If there are no more entries in the result then it returns false.

ldap_next_entry() function is used to retrieve the entries stored in the result. Successive calls to the ldap_next_entry() return entries one by one till there are no more entries. The first call to ldap_next_entry() is made after the call to ldap_first_entry() with the result_identifier as returned from the ldap_first_entry().

see also ldap_get_entries()

Zurück | Anfang | Vor
ldap_next_attribute | Hoch | ldap_read


ldap_read

(PHP 3, PHP 4 )

ldap_read -- Read an entry

Description

int ldap_read (int link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or false on error.

ldap_read() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_BASE. So it is equivalent to reading an entry from the directory.

An empty filter is not allowed. If you want to retrieve absolutely all information for this entry, use a filter of "objectClass=*". If you know which entry types are used on the directory server, you might use an appropriate filter such as "objectClass=inetOrgPerson".

This call takes 5 optional parameters. See ldap_search() notes.

Anmerkung: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

Zurück | Anfang | Vor
ldap_next_entry | Hoch | ldap_search


ldap_search

(PHP 3, PHP 4 )

ldap_search -- Search LDAP tree

Description

int ldap_search (int link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or false on error.

ldap_search() performs the search for a specified filter on the directory with the scope of LDAP_SCOPE_SUBTREE. This is equivalent to searching the entire directory. base_dn specifies the base DN for the directory.

There is a optional fourth parameter, that can be added to restrict the attributes and values returned by the server to just those required. This is much more efficient than the default action (which is to return all attributes and their associated values). The use of the fourth parameter should therefore be considered good practice.

The fourth parameter is a standard PHP string array of the required attributes, eg array("mail","sn","cn") Note that the "dn" is always returned irrespective of which attributes types are requested.

Note too that some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This occurs also if the sixth parameter sizelimit has been used to limit the count of fetched entries.

The fifth parameter attrsonly should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

With the sixth parameter sizelimit it is possible to limit the count of entries fetched. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset sizelimit. You can set it lower though.

The seventh parameter timelimit sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset timelimit. You can set it lower though.

The eigth parameter deref specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.

  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.

  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.

  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP doumentation (see the Netscape Directory SDK for full information on filters).

The example below retrieves the organizational unit, surname, given name and email address for all people in "My Company" where the surname or given name contains the substring $person. This example uses a boolean filter to tell the server to look for information in more than one attribute.

Beispiel 1. LDAP search

// $ds is a valid link identifier for a directory server

// $person is all or part of a person's name, eg "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array( "ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

print $info["count"]." entries returned<p>";

Zurück | Anfang | Vor
ldap_read | Hoch | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4)

ldap_set_option -- Set the value of the given option

Description

boolean ldap_set_option (int link_identifier, int option, mixed newval)

Sets the value of the specified option to be newval, and returns true on success and false on error.

The parameter option can be one of: 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. Here's a brief description, see draft-ietf-ldapext-ldap-c-api-xx.txt for details.

The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value, LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN have string value. The first example illustrates their use. The options LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See also the second example below.

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Beispiel 1. Set protocol version

// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
    echo "Using LDAPv3";
else
    echo "Failed to set protocol version to 3";

Beispiel 2. Set server controls

// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => TRUE);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
    echo "Failed to set server controls";

See also ldap_get_option().

Zurück | Anfang | Vor
ldap_search | Hoch | ldap_unbind


ldap_unbind

(PHP 3, PHP 4 )

ldap_unbind -- Unbind from LDAP directory

Description

int ldap_unbind (int link_identifier)

Returns true on success and false on error.

ldap_unbind() function unbinds from the LDAP directory.

Zurück | Anfang | Vor
ldap_set_option | Hoch | Mail Funktionen


Mail Funktionen

PHP Handbuch
Zurück Vor

XXXVII. Mail Funktionen

Die Mail() Funktionen erlauben das Versenden von Mail.

Inhaltsverzeichnis
mail — Sende Mail
Zurück | Anfang | Vor
ldap_unbind | Hoch | mail


mail

(PHP 3, PHP 4 )

mail -- Sende Mail

Beschreibung

bool mail (string to, string subject, string message [, string additional_headers])

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.

Beispiel 1. Verschicken von Mail.

mail("rasmus@lerdorf.on.ca", "My Subject", "Line 1\nLine 2\nLine 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.

Beispiel 2. Verschicke Mail mit zusätzlichen Headers.

mail("nobody@aol.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion());

Zurück | Anfang | Vor
Mail Funktionen | Hoch | Mathematische Funktionen


Mathematische Funktionen

PHP Handbuch
Zurück Vor

XXXVIII. Mathematische Funktionen

Introduction

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
Acos — Arcuscosinus
Asin — Arcussinus
Atan — Arcustangens
Atan2 — Arcustangens aus zwei Werten
base_convert — Konvertiert Werte zwischen Zahlensystemen unterschiedlicher Basis
BinDec — Binär zu dezimal Konvertierung
Ceil — Aufrunden
Cos — Cosinus
DecBin — Dezimal zu binär Konvertierung
DecHex — Dezimal zu hexadezimal Konvertierung
DecOct — Dezimal zu oktal Konvertierung
deg2rad — Grad in Bogenmaß wandeln
Exp — e hoch ...
Floor — Abrunden
getrandmax — Größtmöglicher Zufallswert
HexDec — Hexadezimal zu dezimal Konvertierung
Log — Natürlicher Logarithmus
Log10 — Zehner-Logarithmus
max — Maximalwert bestimmen
min — Minimalwert bestimmen
mt_rand — Erzeugt 'bessere' Zufallszahlen
mt_srand — seed the better random number generator
mt_getrandmax — show largest possible random value
number_format — Formartiert eine Zahl mit Tausendergruppen
OctDec — Oktal zu dezimal Konvertierung
pi — Wert von PI
pow — Exponentialfunktion
rad2deg — Grad in Bogenmaß wandeln
rand — (Pseudo-) Zufallszahl generieren
round — Runden eines Wertes
Sin — Sinus
Sqrt — Quadratwurzel
srand — Startwert für den Zufallsgenerator festlegen
Tan — Tangens
Zurück | Anfang | Vor
mail | Hoch | Abs


Abs

(PHP 3, PHP 4 )

Abs -- Absolutwert

Beschreibung

mixed abs (mixed number)

Liefert den Absolutwert einer Zahl. Ist number vom Typ float, so ist auch das Ergebnis vom Typ float, ansonsten ist es vom Typ int.

Zurück | Anfang | Vor
Mathematische Funktionen | Hoch | Acos


Acos

(PHP 3, PHP 4 )

Acos -- Arcuscosinus

Beschreibung

float acos (float arg)

Liefert den Arcuscosinus zum Wert arg im Bogenmaß.

Siehe auch asin(), atan() und cos().

Zurück | Anfang | Vor
Abs | Hoch | Asin


Asin

(PHP 3, PHP 4 )

Asin -- Arcussinus

Beschreibung

float asin (float arg)

Liefert den Arcussinus zum Wert arg im Bogenmaß.

Siehe auch acos(), atan() und sin().

Zurück | Anfang | Vor
Acos | Hoch | Atan


Atan

(PHP 3, PHP 4 )

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 | Anfang | Vor
Asin | Hoch | Atan2


Atan2

(PHP 3>= 3.0.5, PHP 4 )

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, allerdingskann hier das Vorzeichen beider Parameter ausgewertet und so der Quadrant des Ergebnises bestimmt werden.

Siehe auch atan(), acos(), asin(), und tan().

Zurück | Anfang | Vor
Atan | Hoch | base_convert


base_convert

(PHP 3>= 3.0.6, PHP 4 )

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 giebt 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 | Anfang | Vor
Atan2 | Hoch | BinDec


BinDec

(PHP 3, PHP 4 )

BinDec -- Binär zu dezimal Konvertierung

Beschreibung

int bindec (string binary_string)

Liefert die dezimale Entsprechnung 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 | Anfang | Vor
base_convert | Hoch | Ceil


Ceil

(PHP 3, PHP 4 )

Ceil -- Aufrunden

Beschreibung

int 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 | Anfang | Vor
BinDec | Hoch | Cos


Cos

(PHP 3, PHP 4 )

Cos -- Cosinus

Beschreibung

float cos (float arg)

Liefert den Cosinus des Winkels arg (arg in Bogenmaß).

Siehe auch sin(), tan() und acos().

Zurück | Anfang | Vor
Ceil | Hoch | DecBin


DecBin

(PHP 3, PHP 4 )

DecBin -- Dezimal zu binär Konvertierung

Beschreibung

string decbin (int number)

Diese Funktion liefert eine binäre Representation 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 einen String aus 31 Einsen.

Siehe auch bindec() sowie dechex() und decoct().

Zurück | Anfang | Vor
Cos | Hoch | DecHex


DecHex

(PHP 3, PHP 4 )

DecHex -- Dezimal zu hexadezimal Konvertierung

Beschreibung

string dechex (int number)

Diese Funktion liefert eine hexadezimale Representation 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 "7fffffff" zurück.

Siehe auch hexdec() sowie decbin() und decoct().

Zurück | Anfang | Vor
DecBin | Hoch | DecOct


DecOct

(PHP 3, PHP 4 )

DecOct -- Dezimal zu oktal Konvertierung

Beschreibung

string decoct (int number)

Diese Funktion liefert eine oktale (zur Basis 8) Representation 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 | Anfang | Vor
DecHex | Hoch | deg2rad


deg2rad

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
DecOct | Hoch | Exp


Exp

(PHP 3, PHP 4 )

Exp -- e hoch ...

Beschreibung

float exp (float arg)

Liefert e potenziert mit arg.

Siehe auch pow().

Zurück | Anfang | Vor
deg2rad | Hoch | Floor


Floor

(PHP 3, PHP 4 )

Floor -- Abrunden

Beschreibung

int floor (float number)

Diese Funktion liefert die ganze Zahl, die kleiner oder gleich dem Parameter number ist.

Siehe auch ceil() und round().

Zurück | Anfang | Vor
Exp | Hoch | getrandmax


getrandmax

(PHP 3, PHP 4 )

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 | Anfang | Vor
Floor | Hoch | HexDec


HexDec

(PHP 3, PHP 4 )

HexDec -- Hexadezimal zu dezimal Konvertierung

Beschreibung

int hexdec (string hex_string)

Liefert die dezimale Entsprechnung 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 | Anfang | Vor
getrandmax | Hoch | Log


Log

(PHP 3, PHP 4 )

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 | Anfang | Vor
HexDec | Hoch | Log10


Log10

(PHP 3, PHP 4 )

Log10 -- Zehner-Logarithmus

Beschreibung

float log10 (float arg)

Diese Funktion liefert den Logarithmus des Parameters arg zur Basis zehn.

Siehe auch log().

Zurück | Anfang | Vor
Log | Hoch | max


max

(PHP 3, PHP 4 )

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üßen mindestens zwei Parameter übergeben werden, und max() liefert den Wert des größten Parameters zurück. Die Anzahl der Eingabe-Paramter ist nur durch den verfügbaren Hauptspeicher begrenzt.

Ist mindestens einer der Eigabewerte 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 | Anfang | Vor
Log10 | Hoch | min


min

(PHP 3, PHP 4 )

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üßen mindestens zwei Parameter übergeben werden, und min() liefert den Wert des kleinsten Parameters zurück. Die Anzahl der Eingabe-Paramter ist nur durch den verfügbaren Hauptspeicher begrenzt.

Ist mindestens einer der Eigabewerte 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 | Anfang | Vor
max | Hoch | mt_rand


mt_rand

(PHP 3>= 3.0.6, PHP 4 )

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 opmimierten Implementation finden sich unter http://www.math.keio.ac.jp/~matumoto/emt.html und http://www.scp.syr.edu/~marc/hawk/twister.html.

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: 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 muß 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 | Anfang | Vor
min | Hoch | mt_srand


mt_srand

(PHP 3>= 3.0.6, PHP 4 )

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();

Siehe auch mt_rand(),
mt_getrandmax(), srand(),
rand() und getrandmax().

Zurück | Anfang | Vor
mt_rand | Hoch | mt_getrandmax


mt_getrandmax

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
mt_srand | Hoch | number_format


number_format

(PHP 3, PHP 4 )

number_format -- Formartiert eine Zahl mit Tausendergruppen

Beschreibung

string number_format (float number [, int decimals [, string dec_point [, string thousands_sep]]])

number_format() erzeugt aus number einen formatierten String. Die Funktion akzeptiert ein, zwei oder vier Parameter (nicht drei).

Wird nur number übergeben, so wird diese Zahl ohne Nachkommastellen, aber mit durch Komma getrennten Tausendergruppen ausgegeben. ( 1234567 -> 1,234,567 )

Der optionale Parameter decimals giebt die Anzahl der auszugebenden Nachkommastellen an, diese werden durch einen Punkt getrennt ausgegeben.

Mit Hilfe der weiteren Parameter dec_point und thousands_sep können andere Trennzeichen für Tausendergruppen und Nachkommastellen festgelegt werden. Diese beiden Parameter können nur zusammen angegeben werden.

Im deutschen Sprachraum werden die Trennzeichen i.A. genau umgekehrt benutzt, d.h. Nachkommastellen werden durch ein Komma und Tausender durch einen Punkt getrennt.

Zurück | Anfang | Vor
mt_getrandmax | Hoch | OctDec


OctDec

(PHP 3, PHP 4 )

OctDec -- Oktal zu dezimal Konvertierung

Beschreibung

int octdec (string octal_string)

Liefert die dezimale Entsprechnung 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 | Anfang | Vor
number_format | Hoch | pi


pi

(PHP 3, PHP 4 )

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 | Anfang | Vor
OctDec | Hoch | pow


pow

(PHP 3, PHP 4 )

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 | Anfang | Vor
pi | Hoch | rad2deg


rad2deg

(PHP 3>= 3.0.4, PHP 4 )

rad2deg -- Grad in Bogenmaß wandeln

Beschreibung

double rad2deg (double number)

Diese Funktion wandelt den übergebenen Winkel von Bogenmaß in Grad.

Siehe auch deg2rad().

Zurück | Anfang | Vor
pow | Hoch | rand


rand

(PHP 3, PHP 4 )

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: 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 muß 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 | Anfang | Vor
rad2deg | Hoch | round


round

(PHP 3, PHP 4 )

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 | Anfang | Vor
rand | Hoch | Sin


Sin

(PHP 3, PHP 4 )

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 | Anfang | Vor
round | Hoch | Sqrt


Sqrt

(PHP 3, PHP 4 )

Sqrt -- Quadratwurzel

Beschreibung

float sqrt (float arg)

Diese Funktion liefert die Quadratwurzel des Wertes arg.

Zurück | Anfang | Vor
Sin | Hoch | srand


srand

(PHP 3, PHP 4 )

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();

Siehe auch rand(),
getrandmax(), mt_rand(),
mt_srand() und
mt_getrandmax().

Zurück | Anfang | Vor
Sqrt | Hoch | Tan


Tan

(PHP 3, PHP 4 )

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 | Anfang | Vor
srand | Hoch | MCAL Funktionen


MCAL Funktionen

PHP Handbuch
Zurück Vor

XXXIX. MCAL Funktionen

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, muß PHP mit der Option --with-mcal kompiliert werden. Dies setzt eine installierte mcal-Bibliothek vorraus. Holen Sie sich die aktuelle Version unter http://mcal.chek.com/ und kompilieren und installieren Sie sie.

Die folgenden Konstanten werden definiert, wenn das mcal-Modul verwendet wird: MCAL_SUNDAY, MCAL_MONDAY, MCAL_TUESDAY, MCAL_WEDNESDAY, MCAL_THURSDAY, MCAL_FRIDAY, MCAL_SATURDAY, MCAL_RECUR_NONE, MCAL_RECUR_DAILY, MCAL_RECUR_WEEKLY, MCAL_RECUR_MONTHLY_MDAY, MCAL_RECUR_MONTHLY_WDAY, MCAL_RECUR_YEARLY, MCAL_JANUARY, MCAL_FEBRUARY, MCAL_MARCH, MCAL_APRIL, MCAL_MAY, MCAL_JUNE, MCAL_JULY, MCAL_AUGUGT, MCAL_SEPTEMBER, MCAL_OCTOBER, MCAL_NOVEMBER, and MCAL_DECEMBER. Die meisten dieser Funktionen benutzen eine interne Ereignisstruktur, die einzigartig für jeden Stream ist. Dies vermindert die Notwendigkeit, große Objekte zwischen Funktionen auszutauschen. Es gibt Hilfsfunktionen für Einstellung, Initialisierung und Abruf der Ereignisstruktur.

Inhaltsverzeichnis
mcal_open — Stellt eine MCAL-Verbindung her
mcal_close — Schließen eines MCAL-Streams
mcal_fetch_event — Holt ein Ereignis aus einem Kalender-Stream.
mcal_list_events — Zeigt eine Liste der Einträge zwischen zwei Zeitpunkten an
mcal_append_event — Store a new event into an MCAL calendar
mcal_store_event — Modify an existing event in an MCAL calendar
mcal_delete_event — Delete an event from an MCAL calendar
mcal_snooze — Turn off an alarm for an event
mcal_list_alarms — Return a list of events that has an alarm triggered at the given datetime
mcal_event_init — Initializes a streams global event structure
mcal_event_set_category — Sets the category of the streams global event structure
mcal_event_set_title — Sets the title of the streams global event structure
mcal_event_set_description — Sets the description 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_end — Sets the end date and time of the streams global event structure
mcal_event_set_alarm — Sets the alarm of the streams global event structure
mcal_event_set_class — Sets the class of the streams global event structure
mcal_is_leap_year — Returns if the given year is a leap year or not
mcal_days_in_month — Returns the number of days in the given month
mcal_date_valid — Returns true if the given year, month, day is a valid date
mcal_time_valid — Returns true if the given year, month, day is a valid time
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_date_compare — Compares two dates
mcal_next_recurrence — Returns the next recurrence of the event
mcal_event_set_recur_none — Sets the recurrence of the streams global event structure
mcal_event_set_recur_daily — 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_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_yearly — Sets the recurrence of the streams global event structure
mcal_fetch_current_stream_event — Returns an object containing the current streams event structure
Zurück | Anfang | Vor
Tan | Hoch | mcal_open


mcal_open

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
MCAL Funktionen | Hoch | mcal_close


mcal_close

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

mcal_close -- Schließen eines MCAL-Streams

Beschreibung

int mcal_close (int mcal_stream, int flags)

Schließt einen offenen mcal-Stream.

Zurück | Anfang | Vor
mcal_open | Hoch | mcal_fetch_event


mcal_fetch_event

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_close | Hoch | mcal_list_events


mcal_list_events

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_fetch_event | Hoch | mcal_append_event


mcal_append_event

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
mcal_list_events | Hoch | mcal_store_event


mcal_store_event

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_append_event | Hoch | mcal_delete_event


mcal_delete_event

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_store_event | Hoch | mcal_snooze


mcal_snooze

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_delete_event | Hoch | mcal_list_alarms


mcal_list_alarms

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_snooze | Hoch | mcal_event_init


mcal_event_init

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_list_alarms | Hoch | mcal_event_set_category


mcal_event_set_category

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_init | Hoch | mcal_event_set_title


mcal_event_set_title

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_category | Hoch | mcal_event_set_description


mcal_event_set_description

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_title | Hoch | mcal_event_set_start


mcal_event_set_start

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_description | Hoch | mcal_event_set_end


mcal_event_set_end

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_start | Hoch | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_end | Hoch | mcal_event_set_class


mcal_event_set_class

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_alarm | Hoch | mcal_is_leap_year


mcal_is_leap_year

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_class | Hoch | mcal_days_in_month


mcal_days_in_month

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_is_leap_year | Hoch | mcal_date_valid


mcal_date_valid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_days_in_month | Hoch | mcal_time_valid


mcal_time_valid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_date_valid | Hoch | mcal_day_of_week


mcal_day_of_week

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_time_valid | Hoch | mcal_day_of_year


mcal_day_of_year

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_day_of_week | Hoch | mcal_date_compare


mcal_date_compare

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_day_of_year | Hoch | mcal_next_recurrence


mcal_next_recurrence

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_date_compare | Hoch | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3>= 3.0.15, PHP 4 >= 4.0RC1)

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 | Anfang | Vor
mcal_next_recurrence | Hoch | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_none | Hoch | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_daily | Hoch | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_weekly | Hoch | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_monthly_mday | Hoch | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_monthly_wday | Hoch | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
mcal_event_set_recur_yearly | Hoch | Mcrypt Encryption Functions


Mcrypt Encryption Functions

PHP Handbuch
Zurück Vor

XL. Mcrypt Encryption Functions

These functions work using mcrypt.

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".

If you linked against libmcrypt 2.4.x, 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 another cipher mode is also available; nOFB.

To use it, download libmcrypt-x.x.tar.gz from here and follow the included installation instructions. You need to compile PHP with the --with-mcrypt parameter to enable this extension. Make sure you compile libmcrypt with the option --disable-posix-threads.

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 very 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, 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 in ECB mode

<?php
$key = "this is a very secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_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_end ($td);
?>
This example will give you the encrypted data as a string in $encrypted_data.

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x mcrypt can also operate in the block cipher mode nOFB and in STREAM mode. Then there are also constants in the form MCRYPT_MODE_mode for use with several functions. We will outline the normal use for each of these modes. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • 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.

  • CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.

  • CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.

  • 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.

  • nOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.

  • STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

PHP does not support encrypting/decrypting bit streams currently. As of now, PHP only supports handling of strings.

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 mcrypt-2.4.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().

Here is a short list of ciphers which are currently supported by the mcrypt extension. If a cipher is not listed here, but is listed by mcrypt as supported, you can safely assume that this documentation is outdated.

  • 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).

Inhaltsverzeichnis
mcrypt_get_cipher_name — Get the name of the specified cipher
mcrypt_get_block_size — Get the block size of the specified cipher
mcrypt_get_key_size — Get the key size of the specified cipher
mcrypt_create_iv — Create an initialization vector (IV) from a random source
mcrypt_cbc — Encrypt/decrypt data in CBC mode
mcrypt_cfb — Encrypt/decrypt data in CFB mode
mcrypt_ecb — Encrypt/decrypt data in ECB mode
mcrypt_ofb — Encrypt/decrypt data in OFB mode
mcrypt_list_algorithms — Get an array of all supported ciphers
mcrypt_list_modes — Get an array of all supported modes
mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
mcrypt_encrypt — Encrypts plaintext with given parameters
mcrypt_decrypt — Decrypts crypttext with given parameters
mcrypt_module_open — This function opens the module of the algorithm and the mode to be used
mcrypt_generic_init — This function initializes all buffers needed for encryption
mcrypt_generic — This function encrypts data
mdecrypt_generic — This function decrypts data
mcrypt_generic_end — This function terminates encryption
mcrypt_enc_self_test — This function runs a self test on the opened module
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_get_block_size — Returns the blocksize of the opened algorithm
mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
mcrypt_enc_get_modes_name — Returns the name of the opened mode
mcrypt_module_self_test — This function runs a self test on the specified module
mcrypt_module_is_block_algorithm_mode — This function returns if the 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 — This function returns if the the specified mode outputs blocks or not
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_algo_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
Zurück | Anfang | Vor
mcal_fetch_current_stream_event | Hoch | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3>= 3.0.8, PHP 4 )

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) 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;

print mcrypt_get_cipher_name ($cipher);
?>

The above example will produce:

3DES

Zurück | Anfang | Vor
Mcrypt Encryption Functions | Hoch | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3>= 3.0.8, PHP 4 )

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.

Mcrypt_get_block_size() is used to get the size of a block of the specified cipher.

Mcrypt_get_block_size() takes one or two arguments, the cipher and module, and returns the size in bytes.

See also: mcrypt_get_key_size().

Zurück | Anfang | Vor
mcrypt_get_cipher_name | Hoch | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3>= 3.0.8, PHP 4 )

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.

Mcrypt_get_key_size() is used to get the size of a key of the specified cipher.

Mcrypt_get_key_size() takes one or two arguments, the cipher and module, and returns the size in bytes.

See also: mcrypt_get_block_size().

Zurück | Anfang | Vor
mcrypt_get_block_size | Hoch | mcrypt_create_iv


mcrypt_create_iv

(PHP 3>= 3.0.8, PHP 4 )

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.

Beispiel 1. Mcrypt_create_iv() example

<?php
$cipher = MCRYPT_TripleDES;
$block_size = mcrypt_get_block_size ($cipher);
$iv = mcrypt_create_iv ($block_size, MCRYPT_DEV_RANDOM);
?>

Zurück | Anfang | Vor
mcrypt_get_key_size | Hoch | mcrypt_cbc


mcrypt_cbc

(PHP 3>= 3.0.8, PHP 4 )

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.

Mcrypt_cbc() encrypts or decrypts (depending on mode) the data with cipher and key in CBC cipher mode and returns the resulting string.

Cipher is one of the MCRYPT_ciphername constants.

Key is the key supplied to the algorithm. It must be kept secret.

Data is the data which shall be encrypted/decrypted.

Mode is MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

IV is the optional initialization vector.

See also: mcrypt_cfb(),
mcrypt_ecb(), and
mcrypt_ofb().

Zurück | Anfang | Vor
mcrypt_create_iv | Hoch | mcrypt_cfb


mcrypt_cfb

(PHP 3>= 3.0.8, PHP 4 )

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.

Mcrypt_cfb() encrypts or decrypts (depending on mode) the data with cipher and key in CFB cipher mode and returns the resulting string.

Cipher is one of the MCRYPT_ciphername constants.

Key is the key supplied to the algorithm. It must be kept secret.

Data is the data which shall be encrypted/decrypted.

Mode is MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

IV is the initialization vector.

See also: mcrypt_cbc(),
mcrypt_ecb(), and
mcrypt_ofb().

Zurück | Anfang | Vor
mcrypt_cbc | Hoch | mcrypt_ecb


mcrypt_ecb

(PHP 3>= 3.0.8, PHP 4 )

mcrypt_ecb -- 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.

Mcrypt_ecb() encrypts or decrypts (depending on mode) the data with cipher and key in ECB cipher mode and returns the resulting string.

Cipher is one of the MCRYPT_ciphername constants.

Key is the key supplied to the algorithm. It must be kept secret.

Data is the data which shall be encrypted/decrypted.

Mode is MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

See also: mcrypt_cbc(),
mcrypt_cfb(), and
mcrypt_ofb().

Zurück | Anfang | Vor
mcrypt_cfb | Hoch | mcrypt_ofb


mcrypt_ofb

(PHP 3>= 3.0.8, PHP 4 )

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.

Mcrypt_ofb() encrypts or decrypts (depending on mode) the data with cipher and key in OFB cipher mode and returns the resulting string.

Cipher is one of the MCRYPT_ciphername constants.

Key is the key supplied to the algorithm. It must be kept secret.

Data is the data which shall be encrypted/decrypted.

Mode is MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

IV is the initialization vector.

See also: mcrypt_cbc(),
mcrypt_cfb(), and
mcrypt_ecb().

Zurück | Anfang | Vor
mcrypt_ecb | Hoch | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2)

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. Mcrypt_list_algorithms() takes as optional parameter a directory 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."/n";
}
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Zurück | Anfang | Vor
mcrypt_ofb | Hoch | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2)

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>";
}
?>

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 | Anfang | Vor
mcrypt_list_algorithms | Hoch | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2)

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)

int mcrypt_get_iv_size (resource td)

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x.

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 of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

Td is the algorithm specified.

Zurück | Anfang | Vor
mcrypt_list_modes | Hoch | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2)

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 = mcrypt_create_iv (mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), 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

Zurück | Anfang | Vor
mcrypt_get_iv_size | Hoch | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_encrypt | Hoch | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2)

mcrypt_module_open -- This function 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, eg "twofish" or is one of the MCRYPT_ciphername constants. The library is closed by calling mcrypt_module_close(), but there is no need to call that function if mcrypt_generic_end() is called. 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 directory are used that are compiled in into libmcrypt (usally /usr/local/lib/libmcrypt).

Beispiel 1. Mcrypt_module_open() Example

<?php
$td = mcrypt_module_open (MCRYPT_DES, "", MCRYPT_MODE_ECB, "/usr/lib/mcrypt-modes");
?>
The above example will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes.

Zurück | Anfang | Vor
mcrypt_decrypt | Hoch | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2)

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 (-1) on error.

You need to call this function before every mcrypt_generic() or mdecrypt_generic().

Zurück | Anfang | Vor
mcrypt_module_open | Hoch | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2)

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.

Zurück | Anfang | Vor
mcrypt_generic_init | Hoch | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2)

mdecrypt_generic -- This function decrypts 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
$iv_size = mcrypt_enc_get_iv_size ($td));
$iv = @mcrypt_create_iv ($iv_size, MCRYPT_RAND);

if (@mcrypt_generic_init ($td, $key, $iv) != -1)
{
    $c_t = mcrypt_generic ($td, $plain_text);
    @mcrypt_generic_init ($td, $key, $iv);
    $p_t = mdecrypt_generic ($td, $c_t);
}
if (strncmp ($p_t, $plain_text, strlen($plain_text)) == 0)
    echo "ok";
else
    echo "error";
?>
The above example shows how to check if the data before the encryption is the same as the data after the decryption.

Zurück | Anfang | Vor
mcrypt_generic | Hoch | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end (resource td)

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 succes.

Zurück | Anfang | Vor
mdecrypt_generic | Hoch | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

int 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 zero. In case of an error, it returns 1.

Zurück | Anfang | Vor
mcrypt_generic_end | Hoch | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

int mcrypt_enc_is_block_algorithm_mode (resource td)

This function returns 1 if the mode is for use with block algorithms, otherwise it returns 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb).

Zurück | Anfang | Vor
mcrypt_enc_self_test | Hoch | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

int mcrypt_enc_is_block_algorithm (resource td)

This function returns 1 if the algorithm is a block algorithm, or 0 if it is a stream algorithm.

Zurück | Anfang | Vor
mcrypt_enc_is_block_algorithm_mode | Hoch | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

int mcrypt_enc_is_block_mode (resource td)

This function returns 1 if the mode outputs blocks of bytes or 0 if it outputs bytes. (eg. 1 for cbc and ecb, and 0 for cfb and stream).

Zurück | Anfang | Vor
mcrypt_enc_is_block_algorithm | Hoch | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_enc_is_block_mode | Hoch | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_enc_get_block_size | Hoch | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2)

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.

Zurück | Anfang | Vor
mcrypt_enc_get_key_size | Hoch | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_enc_get_supported_key_sizes | Hoch | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2)

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.

Zurück | Anfang | Vor
mcrypt_enc_get_iv_size | Hoch | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2)

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.

Zurück | Anfang | Vor
mcrypt_enc_get_algorithms_name | Hoch | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2)

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.

Zurück | Anfang | Vor
mcrypt_enc_get_modes_name | Hoch | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2)

mcrypt_module_is_block_algorithm_mode -- This function returns if the 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 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Anfang | Vor
mcrypt_module_self_test | Hoch | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_module_is_block_algorithm_mode | Hoch | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2)

mcrypt_module_is_block_mode -- This function returns if the 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. (eg. 1 for cbc and ecb, and 0 for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Zurück | Anfang | Vor
mcrypt_module_is_block_algorithm | Hoch | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_module_is_block_mode | Hoch | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2)

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 | Anfang | Vor
mcrypt_module_get_algo_block_size | Hoch | mcrypt_module_get_algo_supported_key_sizes


mcrypt_module_get_algo_supported_key_sizes

(unknown)

mcrypt_module_get_algo_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_enc_get_algo_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.

Zurück | Anfang | Vor
mcrypt_module_get_algo_key_size | Hoch | Hash Funktionen


Hash Funktionen

PHP Handbuch
Zurück Vor

XLI. 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 SHA1 Schlüssel und gib es als Hex aus

<?php
$input = "Lass uns um 9 Uhr an einem geheimen Ort treffen.";
$hash = mhash(MHASH_SHA1, $input);

print "Der Hash ist " . bin2hex($hash)."\n";

?>
Die Ausgabe ist:

Der Hash ist d3b85d710d8f6e4e5efd4d5e67d041f9cecedafe
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_get_hash_name — Gibt den Namen eines Hashs zurück
mhash_get_block_size — Gibt die Blockgroesse von dem übergebenem Hash zurück
mhash_count — Gibt den höchstmöglichen Hash zurück
mhash — Hash berechnen
Zurück | Anfang | Vor
mcrypt_module_get_algo_supported_key_sizes | Hoch | mhash_get_hash_name


mhash_get_hash_name

(PHP 3>= 3.0.9, PHP 4 )

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 | Anfang | Vor
Hash Funktionen | Hoch | mhash_get_block_size


mhash_get_block_size

(PHP 3>= 3.0.9, PHP 4 )

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 | Anfang | Vor
mhash_get_hash_name | Hoch | mhash_count


mhash_count

(PHP 3>= 3.0.9, PHP 4 )

mhash_count -- Gibt den höchstmöglichen Hash zurück

Description

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 | Anfang | Vor
mhash_get_block_size | Hoch | mhash


mhash

(PHP 3>= 3.0.9, PHP 4 )

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 | Anfang | Vor
mhash_count | Hoch | Microsoft SQL Server Funktionen


Microsoft SQL Server Funktionen

PHP Handbuch
Zurück Vor

XLII. Microsoft SQL Server Funktionen

Inhaltsverzeichnis
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_fetch_array — Liefert einen Datensatz als Array
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_get_last_message — Gibt die letzte Meldung des Servers zurück (über min_message_severity?)
mssql_min_error_severity — Setzt die untere Fehlerschwelle
mssql_min_message_severity — Setzt die untere Schwelle für Meldungen
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_select_db — Wählt eine MS SQL Datenbank aus
Zurück | Anfang | Vor
mhash | Hoch | mssql_close


mssql_close

(PHP 3, PHP 4 )

mssql_close -- Schließt die Verbindung zum MS SQL Server

Beschreibung

int mssql_close ([int Verbindungs-Kennung])

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück.

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.

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(), mssql_pconnect().

Zurück | Anfang | Vor
Microsoft SQL Server Funktionen | Hoch | mssql_connect


mssql_connect

(PHP 3, PHP 4 )

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(), mssql_close().

Zurück | Anfang | Vor
mssql_close | Hoch | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4 )

mssql_data_seek -- Bewegt den internen Datensatz-Zeiger

Beschreibung

int mssql_data_seek (int Ergebnis-Kennung, int Zeilennummer)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück.

Mssql_data_seek() bewegt den internen Datensatz-Zeiger des mit der angegebenen Ergebnis-Kennung verbundenen Ergebnisses zur angegebenen Zeilennummer. Beim nächsten Aufruf von mssql_fetch_row() wird nun dieser Datensatz zurückgeben.

Siehe auch: mssql_data_seek().

Zurück | Anfang | Vor
mssql_connect | Hoch | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4 )

mssql_fetch_array -- Liefert einen Datensatz als Array

Beschreibung

int mssql_fetch_array (int Ergebnis)

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.

Weitere Einzelheiten, siehe auch: mssql_fetch_row().

Zurück | Anfang | Vor
mssql_data_seek | Hoch | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4 )

mssql_fetch_field -- Liefert Informationen über ein Feld

Beschreibung

object mssql_fetch_field (int Erbebnis [, 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

Siehe auch: mssql_field_seek().

Zurück | Anfang | Vor
mssql_fetch_array | Hoch | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 4 )

mssql_fetch_object -- Liefert einen Datensatz als Objekt

Beschreibung

int mssql_fetch_object (int 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).

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 | Anfang | Vor
mssql_fetch_field | Hoch | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4 )

mssql_fetch_row -- Liefert einen Datensatz als indiziertes Array

Beschreibung

array mssql_fetch_row (int 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_rows() 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 | Anfang | Vor
mssql_fetch_object | Hoch | mssql_field_length


mssql_field_length

(PHP 3>= 3.0.3, PHP 4 >= 4.0b4)

mssql_field_length -- Liefert die Länge eines Feldes

Beschreibung

int mssql_field_length (int Ergebnis [, int Offset])

Zurück | Anfang | Vor
mssql_fetch_row | Hoch | mssql_field_name


mssql_field_name

(PHP 3>= 3.0.3, PHP 4 >= 4.0b4)

mssql_field_name -- Liefert den Namen eines Feldes

Beschreibung

int mssql_field_name (int Ergebnis [, int Offset])

Zurück | Anfang | Vor
mssql_field_length | Hoch | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4 )

mssql_field_seek -- Setzt einen Feld-Offset

Beschreibung

int mssql_field_seek (int 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.

Siehe auch: mssql_fetch_field().

Zurück | Anfang | Vor
mssql_field_name | Hoch | mssql_field_type


mssql_field_type

(PHP 3>= 3.0.3, PHP 4 >= 4.0b4)

mssql_field_type -- Liefert den Typ eines Feldes

Beschreibung

string mssql_field_type (int Ergebnis [, int Offset])

Zurück | Anfang | Vor
mssql_field_seek | Hoch | mssql_free_result


mssql_free_result

(PHP 3, PHP 4 )

mssql_free_result -- Gibt den Ergebnisspeicher frei

Beschreibung

int mssql_free_result (int 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 | Anfang | Vor
mssql_field_type | Hoch | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4 )

mssql_get_last_message -- Gibt die letzte Meldung des Servers zurück (über min_message_severity?)

Beschreibung

string mssql_get_last_message (void )

Zurück | Anfang | Vor
mssql_free_result | Hoch | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4 )

mssql_min_error_severity -- Setzt die untere Fehlerschwelle

Beschreibung

void mssql_min_error_severity (int Schwellenwert)

Zurück | Anfang | Vor
mssql_get_last_message | Hoch | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4 )

mssql_min_message_severity -- Setzt die untere Schwelle für Meldungen

Beschreibung

void mssql_min_message_severity (int Schwellenwert)

Zurück | Anfang | Vor
mssql_min_error_severity | Hoch | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4 )

mssql_num_fields -- Liefert die Anzahl der Felder eines Ergebnisses

Beschreibung

int mssql_num_fields (int Ergebnis)

Mssql_num_fields() Gibt die Anzahl der Felder eines Ergebnisses zurück.

Siehe auch: mssql_db_query(),
mssql_query(),
mssql_fetch_field() und
mssql_num_rows().

Zurück | Anfang | Vor
mssql_min_message_severity | Hoch | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4 )

mssql_num_rows -- Liefert die Anzahl der Datensätze eines Ergebnisses

Beschreibung

int mssql_num_rows (string Ergebnis)

Mssql_num_rows() Gibt die Anzahl der Datensätze eines Ergebnisses zurück.

Siehe auch: mssql_db_query(),
mssql_query() und
mssql_fetch_row().

Zurück | Anfang | Vor
mssql_num_fields | Hoch | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4 )

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 | Anfang | Vor
mssql_num_rows | Hoch | mssql_query


mssql_query

(PHP 3, PHP 4 )

mssql_query -- Sendet eine MS SQL Anfrage

Beschreibung

int mssql_query (string Anfrage [, int Verbindungs-Kennung])

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_db_query(),
mssql_select_db() und
mssql_connect().

Zurück | Anfang | Vor
mssql_pconnect | Hoch | mssql_result


mssql_result

(PHP 3, PHP 4 )

mssql_result -- Liefert die bei einer Abfrage gefundenen Daten

Beschreibung

int mssql_result (int Ergebnis, int i, 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 Feldamens 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 | Anfang | Vor
mssql_query | Hoch | mssql_select_db


mssql_select_db

(PHP 3, PHP 4 )

mssql_select_db -- Wählt eine MS SQL Datenbank aus

Beschreibung

int mssql_select_db (string Datenbankname [, int Verbindungs-Kennung])

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück.

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.

Siehe auch:
mssql_connect(),
mssql_pconnect() und
mssql_query()

Zurück | Anfang | Vor
mssql_result | Hoch | Ming functions for Flash


Ming functions for Flash

PHP Handbuch
Zurück Vor

XLIII. Ming functions for Flash

Introduction

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.

Ming is not an acronym.

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.

Installation

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://www.opaque.net/ming/ 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.

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

built into php (unix)

download php_ming.so.gz. uncompress it and copy it to your php modules directory. (you can find your php module directory by running php-config --extension-dir). 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.

How to use Ming

Ming introduces 13 new object in PHP, all with matching methods and attributes. To use them, you need to know about objects.

  • swfmovie().

  • swfshape().

  • swfdisplayitem().

  • swfgradient().

  • swfbitmap().

  • swffill().

  • swfmorph().

  • swftext().

  • swffont().

  • swftextfield().

  • swfsprite().

  • swfbutton().

  • swfaction().

Inhaltsverzeichnis
SWFMovie — Creates a new movie object, representing an SWF version 4 movie.
SWFMovie->output — Dumps your lovingly prepared movie out.
SWFMovie->save — Saves your movie in a file.
SWFMovie->add — Adds any type of data to a movie.
SWFMovie->remove — Removes the object instance from the display list.
SWFMovie->setbackground — Sets the background color.
SWFMovie->setrate — Sets the animation's frame rate.
SWFMovie->setdimension — Sets the movie's width and height.
SWFMovie->setframes — Sets the total number of frames in the animation.
SWFMovie->nextframe — Moves to the next frame of the animation.
SWFMovie->streammp3 — Streams a MP3 file.
SWFDisplayItem — Creates a new displayitem object.
SWFDisplayItem->moveTo — Moves object in global coordinates.
SWFDisplayItem->move — Moves object in relative coordinates.
SWFDisplayItem->scaleTo — Scales the object in global coordinates.
SWFDisplayItem->scale — Scales the object in relative coordinates.
SWFDisplayItem->rotateTo — Rotates the object in global coordinates.
SWFDisplayItem->Rotate — Rotates in relative coordinates.
SWFDisplayItem->skewXTo — Sets the X-skew.
SWFDisplayItem->skewX — Sets the X-skew.
SWFDisplayItem->skewYTo — Sets the Y-skew.
SWFDisplayItem->skewY — Sets the Y-skew.
SWFDisplayItem->setDepth — Sets z-order
SWFDisplayItem->remove — Removes the object from the movie
SWFDisplayItem->setName — Sets the object's name
SWFDisplayItem->setRatio — Sets the object's ratio.
SWFDisplayItem->addColor — Adds the given color to this item's color transform.
SWFDisplayItem->multColor — Multiplies the item's color transform.
SWFShape — Creates a new shape object.
SWFShape->setLine — Sets the shape's line style.
SWFShape->addFill — Adds a solid fill to the shape.
SWFShape->setLeftFill — Sets left rasterizing color.
SWFShape->setRightFill — Sets right rasterizing color.
SWFShape->movePenTo — Moves the shape's pen.
SWFShape->movePen — Moves the shape's pen (relative).
SWFShape->drawLineTo — Draws a line.
SWFShape->drawLine — Draws a line (relative).
SWFShape->drawCurveTo — Draws a curve.
SWFShape->drawCurve — Draws a curve (relative).
SWFGradient — Creates a gradient object
SWFGradient->addEntry — Adds an entry to the gradient list.
SWFBitmap — Loads Bitmap object
SWFBitmap->getWidth — Returns the bitmap's width.
SWFBitmap->getHeight — Returns the bitmap's height.
SWFFill — Loads SWFFill object
SWFFill->moveTo — Moves fill origin
SWFFill->scaleTo — Sets fill's scale
SWFFill->rotateTo — Sets fill's rotation
SWFFill->skewXTo — Sets fill x-skew
SWFFill->skewYTo — Sets fill y-skew
SWFMorph — Creates a new SWFMorph object.
SWFMorph->getshape1 — Gets a handle to the starting shape
SWFMorph->getshape2 — Gets a handle to the ending shape
SWFMorph — Creates a new SWFText object.
SWFText->setFont — Sets the current font
SWFText->setHeight — Sets the current font height
SWFText->setSpacing — Sets the current font spacing
SWFText->setColor — Sets the current font color
SWFText->moveTo — Moves the pen
SWFText->addString — Draws a string
SWFText->getWidth — Computes string's width
SWFFont — Loads a font definition
getwidth — Returns the string's width
SWFTextField — Creates a text field object
SWFTextField->setFont — Sets the text field font
SWFTextField->setbounds — Sets the text field width and height
SWFTextField->align — Sets the text field alignment
SWFTextField->setHeight — Sets the font height of this text field font.
SWFTextField->setLeftMargin — Sets the left margin width of the text field.
SWFTextField->setrightMargin — Sets the right margin width of the text field.
SWFTextField->setMargins — Sets the margins width of the text field.
SWFTextField->setindentation — Sets the indentation of the first line.
SWFTextField->setLineSpacing — Sets the line spacing of the text field.
SWFTextField->setcolor — Sets the color of the text field.
SWFTextField->setname — Sets the variable name
SWFTextField->addstring — Concatenates the given string to the text field
SWFSprite — Creates a movie clip (a sprite)
SWFSprite->add — Adds an object to a sprite
SWFSprite->remove — Removes an object to a sprite
SWFSprite->setframes — Sets the total number of frames in the animation.
SWFSprite->nextframe — Moves to the next frame of the animation.
SWFbutton — Creates a new Button.
SWFbutton->addShape — Adds a shape to a button
SWFbutton->setUp — Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton->setOver — Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setHit — Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setAction — Sets the action
SWFAction — Creates a new Action.
Zurück | Anfang | Vor
mssql_select_db | Hoch | SWFMovie


SWFMovie

(PHP 4 CVS only)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.

Description

new swfmovie (void)

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() et swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Zurück | Anfang | Vor
Ming functions for Flash | Hoch | SWFMovie->output


SWFMovie->output

(unknown)

SWFMovie->output -- Dumps your lovingly prepared movie out.

Description

void swfmovie->output (void)

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 | Anfang | Vor
SWFMovie | Hoch | SWFMovie->save


SWFMovie->save

(unknown)

SWFMovie->save -- Saves your movie in a file.

Description

void swfmovie->save (string filename)

swfmovie->save() saves your movie to the file named filename.

See also output()

Zurück | Anfang | Vor
SWFMovie->output | Hoch | SWFMovie->add


SWFMovie->add

(unknown)

SWFMovie->add -- Adds any type of data to a movie.

Description

void swfmovie->add (ressource instance)

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be add'ed 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 | Anfang | Vor
SWFMovie->save | Hoch | SWFMovie->remove


SWFMovie->remove

(unknown)

SWFMovie->remove -- Removes the object instance from the display list.

Description

void swfmovie->remove (ressource instance)

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add()

Zurück | Anfang | Vor
SWFMovie->add | Hoch | SWFMovie->setbackground


SWFMovie->setbackground

(unknown)

SWFMovie->setbackground -- Sets the background color.

Description

void swfmovie->setbackground (int red, int green, int blue)

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 | Anfang | Vor
SWFMovie->remove | Hoch | SWFMovie->setrate


SWFMovie->setrate

(unknown)

SWFMovie->setrate -- Sets the animation's frame rate.

Description

void swfmovie->setrate (int rate)

nom_de_la_fonction() 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 | Anfang | Vor
SWFMovie->setbackground | Hoch | SWFMovie->setdimension


SWFMovie->setdimension

(unknown)

SWFMovie->setdimension -- Sets the movie's width and height.

Description

void swfmovie->setdimension (int width, int height)

swfmovie->setdimension() sets the movie's width to width and height to height.

Zurück | Anfang | Vor
SWFMovie->setrate | Hoch | SWFMovie->setframes


SWFMovie->setframes

(unknown)

SWFMovie->setframes -- Sets the total number of frames in the animation.

Description

void swfmovie->setframes (string numberofframes)

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Zurück | Anfang | Vor
SWFMovie->setdimension | Hoch | SWFMovie->nextframe


SWFMovie->nextframe

(unknown)

SWFMovie->nextframe -- Moves to the next frame of the animation.

Description

void swfmovie->nextframe (void)

swfmovie->setframes() moves to the next frame of the animation.

Zurück | Anfang | Vor
SWFMovie->setframes | Hoch | SWFMovie->streammp3


SWFMovie->streammp3

(unknown)

SWFMovie->streammp3 -- Streams a MP3 file.

Description

void swfmovie->streammp3 (string mp3FileName)

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 | Anfang | Vor
SWFMovie->nextframe | Hoch | SWFDisplayItem


SWFDisplayItem

(unknown)

SWFDisplayItem -- Creates a new displayitem object.

Description

new swfdisplayitem (void)

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()
et swfdisplayitem->multcolor().

Zurück | Anfang | Vor
SWFMovie->streammp3 | Hoch | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(unknown)

SWFDisplayItem->moveTo -- Moves object in global coordinates.

Description

void swfdisplayitem->moveto (int x, int y)

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 | Anfang | Vor
SWFDisplayItem | Hoch | SWFDisplayItem->move


SWFDisplayItem->move

(unknown)

SWFDisplayItem->move -- Moves object in relative coordinates.

Description

void swfdisplayitem->move (int dx, int dy)

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 | Anfang | Vor
SWFDisplayItem->moveTo | Hoch | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(unknown)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates.

Description

void swfdisplayitem->scaleto (int x, int y)

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 | Anfang | Vor
SWFDisplayItem->move | Hoch | SWFDisplayItem->scale


SWFDisplayItem->scale

(unknown)

SWFDisplayItem->scale -- Scales the object in relative coordinates.

Description

void swfdisplayitem->scale (int dx, int dy)

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 | Anfang | Vor
SWFDisplayItem->scaleTo | Hoch | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(unknown)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.

Description

void swfdisplayitem->rotateto (double degrees)

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 | Anfang | Vor
SWFDisplayItem->scale | Hoch | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(unknown)

SWFDisplayItem->Rotate -- Rotates in relative coordinates.

Description

void swfdisplayitem->rotate (double ddegrees)

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 | Anfang | Vor
SWFDisplayItem->rotateTo | Hoch | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(unknown)

SWFDisplayItem->skewXTo -- Sets the X-skew.

Description

void swfdisplayitem->skewxto (double degrees)

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 | Anfang | Vor
SWFDisplayItem->Rotate | Hoch | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(unknown)

SWFDisplayItem->skewX -- Sets the X-skew.

Description

void swfdisplayitem->skewx (double ddegrees)

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 | Anfang | Vor
SWFDisplayItem->skewXTo | Hoch | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(unknown)

SWFDisplayItem->skewYTo -- Sets the Y-skew.

Description

void swfdisplayitem->skewyto (double degrees)

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 | Anfang | Vor
SWFDisplayItem->skewX | Hoch | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(unknown)

SWFDisplayItem->skewY -- Sets the Y-skew.

Description

void swfdisplayitem->skewy (double ddegrees)

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 | Anfang | Vor
SWFDisplayItem->skewYTo | Hoch | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(unknown)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth (double depth)

swfdisplayitem->rotate() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by add'ing 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 | Anfang | Vor
SWFDisplayItem->skewY | Hoch | SWFDisplayItem->remove


SWFDisplayItem->remove

(unknown)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove (void)

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 | Anfang | Vor
SWFDisplayItem->setDepth | Hoch | SWFDisplayItem->setName


SWFDisplayItem->setName

(unknown)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname (string name)

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 | Anfang | Vor
SWFDisplayItem->remove | Hoch | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(unknown)

SWFDisplayItem->setRatio -- Sets the object's ratio.

Description

void swfdisplayitem->setratio (double ratio)

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 | Anfang | Vor
SWFDisplayItem->setName | Hoch | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(unknown)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform.

Description

void swfdisplayitem->addcolor ([integer red [, integer green [, integer blue [, integer a]]]])

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 | Anfang | Vor
SWFDisplayItem->setRatio | Hoch | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(unknown)

SWFDisplayItem->multColor -- Multiplies the item's color transform.

Description

void swfdisplayitem->multcolor ([integer red [, integer green [, integer blue [, integer a]]]])

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 | Anfang | Vor
SWFDisplayItem->addColor | Hoch | SWFShape


SWFShape

(PHP 4 CVS only)

SWFShape -- Creates a new shape object.

Description

new swfshape (void)

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfile(),
swfshape->setrightfile(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
et 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 | Anfang | Vor
SWFDisplayItem->multColor | Hoch | SWFShape->setLine


SWFShape->setLine

(unknown)

SWFShape->setLine -- Sets the shape's line style.

Description

void swfshape->setline (int width [, integer red [, integer green [, integer blue [, integer a]]]])

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 | Anfang | Vor
SWFShape | Hoch | SWFShape->addFill


SWFShape->addFill

(unknown)

SWFShape->addFill -- Adds a solid fill to the shape.

Description

void swfshape->addfill (integer red, integer green, integer blue [, integer a])

void swfshape->addfill (SWFbitmap bitmap [, integer flags])

void swfshape->addfill (SWFGradient gradient [, integer flags])

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->setfill() functions described below.

See also swfshape->setfill().

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 | Anfang | Vor
SWFShape->setLine | Hoch | SWFShape->setLeftFill


SWFShape->setLeftFill

(unknown)

SWFShape->setLeftFill -- Sets left rasterizing color.

Description

void swfshape->setleftfill (swfgradient fill)

void swfshape->setleftfill (integer red, integer green, integer blue [, integer a])

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 | Anfang | Vor
SWFShape->addFill | Hoch | SWFShape->setRightFill


SWFShape->setRightFill

(unknown)

SWFShape->setRightFill -- Sets right rasterizing color.

Description

void swfshape->setrightfill (swfgradient fill)

void swfshape->setrightfill (integer red, integer green, integer blue [, integer a])

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Zurück | Anfang | Vor
SWFShape->setLeftFill | Hoch | SWFShape->movePenTo


SWFShape->movePenTo

(unknown)

SWFShape->movePenTo -- Moves the shape's pen.

Description

void swfshape->movepento (integer x, integer y)

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() et
swfshape->drawline().

Zurück | Anfang | Vor
SWFShape->setRightFill | Hoch | SWFShape->movePen


SWFShape->movePen

(unknown)

SWFShape->movePen -- Moves the shape's pen (relative).

Description

void swfshape->movepen (integer dx, integer dy)

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() et
swfshape->drawline().

Zurück | Anfang | Vor
SWFShape->movePenTo | Hoch | SWFShape->drawLineTo


SWFShape->drawLineTo

(unknown)

SWFShape->drawLineTo -- Draws a line.

Description

void swfshape->drawlineto (integer x, integer y)

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() et
swfshape->drawline().

Zurück | Anfang | Vor
SWFShape->movePen | Hoch | SWFShape->drawLine


SWFShape->drawLine

(unknown)

SWFShape->drawLine -- Draws a line (relative).

Description

void swfshape->drawline (integer dx, integer dy)

swfshape->setrightfill() 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() et
swfshape->drawlineto().

Zurück | Anfang | Vor
SWFShape->drawLineTo | Hoch | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(unknown)

SWFShape->drawCurveTo -- Draws a curve.

Description

void swfshape->drawcurveto (integer controlx, integer controly, integer anchorx, integer anchory)

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() et
swfshape->movepen().

Zurück | Anfang | Vor
SWFShape->drawLine | Hoch | SWFShape->drawCurve


SWFShape->drawCurve

(unknown)

SWFShape->drawCurve -- Draws a curve (relative).

Description

void swfshape->drawcurve (integer controldx, integer controldy, integer anchordx, integer anchordy)

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() et
swfshape->movepen().

Zurück | Anfang | Vor
SWFShape->drawCurveTo | Hoch | SWFGradient


SWFGradient

(PHP 4 CVS only)

SWFGradient -- Creates a gradient object

Description

new swfgradient (void)

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 redish 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 | Anfang | Vor
SWFShape->drawCurve | Hoch | SWFGradient->addEntry


SWFGradient->addEntry

(unknown)

SWFGradient->addEntry -- Adds an entry to the gradient list.

Description

void swfgradient->addentry (double ratio, integer red, integer green, integer blue [, integer a])

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 | Anfang | Vor
SWFGradient | Hoch | SWFBitmap


SWFBitmap

(PHP 4 CVS only)

SWFBitmap -- Loads Bitmap object

Description

new swfbitmap (string filename [, integer alphafilename])

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 | Anfang | Vor
SWFGradient->addEntry | Hoch | SWFBitmap->getWidth


SWFBitmap->getWidth

(unknown)

SWFBitmap->getWidth -- Returns the bitmap's width.

Description

int swfbitmap->getwidth (void)

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Zurück | Anfang | Vor
SWFBitmap | Hoch | SWFBitmap->getHeight


SWFBitmap->getHeight

(unknown)

SWFBitmap->getHeight -- Returns the bitmap's height.

Description

int swfbitmap->getheight (void)

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Zurück | Anfang | Vor
SWFBitmap->getWidth | Hoch | SWFFill


SWFFill

(PHP 4 CVS only)

SWFFill -- Loads SWFFill object

Description

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 | Anfang | Vor
SWFBitmap->getHeight | Hoch | SWFFill->moveTo


SWFFill->moveTo

(unknown)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto (integer x, integer y)

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Zurück | Anfang | Vor
SWFFill | Hoch | SWFFill->scaleTo


SWFFill->scaleTo

(unknown)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto (integer x, integer y)

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Zurück | Anfang | Vor
SWFFill->moveTo | Hoch | SWFFill->rotateTo


SWFFill->rotateTo

(unknown)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto (double degrees)

swffill->rotateto() sets fill's rotation to degrees degrees.

Zurück | Anfang | Vor
SWFFill->scaleTo | Hoch | SWFFill->skewXTo


SWFFill->skewXTo

(unknown)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto (double x)

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a is a 45-degree forward slant. More is more forward, less is more backward.

Zurück | Anfang | Vor
SWFFill->rotateTo | Hoch | SWFFill->skewYTo


SWFFill->skewYTo

(unknown)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto (double y)

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a is a 45-degree upward slant. More is more upward, less is more downward.

Zurück | Anfang | Vor
SWFFill->skewXTo | Hoch | SWFMorph


SWFMorph

(PHP 4 CVS only)

SWFMorph -- Creates a new SWFMorph object.

Description

new swfmorph (void)

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 | Anfang | Vor
SWFFill->skewYTo | Hoch | SWFMorph->getshape1


SWFMorph->getshape1

(unknown)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 (void)

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Zurück | Anfang | Vor
SWFMorph | Hoch | SWFMorph->getshape2


SWFMorph->getshape2

(unknown)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 (void)

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Zurück | Anfang | Vor
SWFMorph->getshape1 | Hoch | SWFMorph


SWFMorph

(PHP 4 CVS only)

SWFMorph -- Creates a new SWFText object.

Description

new swftext (void)

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 | Anfang | Vor
SWFMorph->getshape2 | Hoch | SWFText->setFont


SWFText->setFont

(unknown)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont (string font)

swftext->setfont() sets the current font to font.

Zurück | Anfang | Vor
SWFMorph | Hoch | SWFText->setHeight


SWFText->setHeight

(unknown)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight (integer height)

swftext->setheight() sets the current font height to height. Default is 240.

Zurück | Anfang | Vor
SWFText->setFont | Hoch | SWFText->setSpacing


SWFText->setSpacing

(unknown)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing (double spacing)

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 | Anfang | Vor
SWFText->setHeight | Hoch | SWFText->setColor


SWFText->setColor

(unknown)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor (integer red, integer green, integer blue [, integer a])

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Zurück | Anfang | Vor
SWFText->setSpacing | Hoch | SWFText->moveTo


SWFText->moveTo

(unknown)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto (integer x, integer y)

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 | Anfang | Vor
SWFText->setColor | Hoch | SWFText->addString


SWFText->addString

(unknown)

SWFText->addString -- Draws a string

Description

void swftext->addstring (string string)

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 | Anfang | Vor
SWFText->moveTo | Hoch | SWFText->getWidth


SWFText->getWidth

(unknown)

SWFText->getWidth -- Computes string's width

Description

void swftext->addstring (string string)

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Zurück | Anfang | Vor
SWFText->addString | Hoch | SWFFont


SWFFont

(PHP 4 CVS only)

SWFFont -- Loads a font definition

Description

new swffont (string filename)

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 | Anfang | Vor
SWFText->getWidth | Hoch | getwidth


getwidth

(PHP 4 CVS only)

getwidth -- Returns the string's width

Description

int swffont->getwidth (string string)

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 | Anfang | Vor
SWFFont | Hoch | SWFTextField


SWFTextField

(PHP 4 CVS only)

SWFTextField -- Creates a text field object

Description

new swftextfield ([int flags])

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_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

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() et
swftextfield->addstring().

Zurück | Anfang | Vor
getwidth | Hoch | SWFTextField->setFont


SWFTextField->setFont

(unknown)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont (string font)

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Zurück | Anfang | Vor
SWFTextField | Hoch | SWFTextField->setbounds


SWFTextField->setbounds

(unknown)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds (int width, int height)

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 | Anfang | Vor
SWFTextField->setFont | Hoch | SWFTextField->align


SWFTextField->align

(unknown)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align (int alignement)

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 | Anfang | Vor
SWFTextField->setbounds | Hoch | SWFTextField->setHeight


SWFTextField->setHeight

(unknown)

SWFTextField->setHeight -- Sets the font height of this text field font.

Description

void swftextfield->setheight (int height)

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Zurück | Anfang | Vor
SWFTextField->align | Hoch | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(unknown)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field.

Description

void swftextfield->setleftmargin (int width)

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Zurück | Anfang | Vor
SWFTextField->setHeight | Hoch | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(unknown)

SWFTextField->setrightMargin -- Sets the right margin width of the text field.

Description

void swftextfield->setrightmargin (int width)

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Zurück | Anfang | Vor
SWFTextField->setLeftMargin | Hoch | SWFTextField->setMargins


SWFTextField->setMargins

(unknown)

SWFTextField->setMargins -- Sets the margins width of the text field.

Description

void swftextfield->setmargins (int left, int right)

swftextfield->setmargins() set both margins at once, for the man on the go.

Zurück | Anfang | Vor
SWFTextField->setrightMargin | Hoch | SWFTextField->setindentation


SWFTextField->setindentation

(unknown)

SWFTextField->setindentation -- Sets the indentation of the first line.

Description

void swftextfield->setindentation (int width)

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Zurück | Anfang | Vor
SWFTextField->setMargins | Hoch | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(unknown)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field.

Description

void swftextfield->setlinespacing (int height)

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Zurück | Anfang | Vor
SWFTextField->setindentation | Hoch | SWFTextField->setcolor


SWFTextField->setcolor

(unknown)

SWFTextField->setcolor -- Sets the color of the text field.

Description

void swftextfield->setcolor (integer red, integer green, integer blue [, integer a])

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Zurück | Anfang | Vor
SWFTextField->setLineSpacing | Hoch | SWFTextField->setname


SWFTextField->setname

(unknown)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname (string name)

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Zurück | Anfang | Vor
SWFTextField->setcolor | Hoch | SWFTextField->addstring


SWFTextField->addstring

(unknown)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring (string string)

swftextfield->setname() concatenates the string string to the text field.

Zurück | Anfang | Vor
SWFTextField->setname | Hoch | SWFSprite


SWFSprite

(PHP 4 CVS only)

SWFSprite -- Creates a movie clip (a sprite)

Description

new swfsprite (void)

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()
et 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 | Anfang | Vor
SWFTextField->addstring | Hoch | SWFSprite->add


SWFSprite->add

(unknown)

SWFSprite->add -- Adds an object to a sprite

Description

void swfsprite->add (ressource object)

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 | Anfang | Vor
SWFSprite | Hoch | SWFSprite->remove


SWFSprite->remove

(unknown)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove (ressource object)

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Zurück | Anfang | Vor
SWFSprite->add | Hoch | SWFSprite->setframes


SWFSprite->setframes

(unknown)

SWFSprite->setframes -- Sets the total number of frames in the animation.

Description

void swfsprite->setframes (integer numberofframes)

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Zurück | Anfang | Vor
SWFSprite->remove | Hoch | SWFSprite->nextframe


SWFSprite->nextframe

(unknown)

SWFSprite->nextframe -- Moves to the next frame of the animation.

Description

void swfsprite->nextframe (void)

swfsprite->setframes() moves to the next frame of the animation.

Zurück | Anfang | Vor
SWFSprite->setframes | Hoch | SWFbutton


SWFbutton

(PHP 4 CVS only)

SWFbutton -- Creates a new Button.

Description

new swfbutton (void)

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 | Anfang | Vor
SWFSprite->nextframe | Hoch | SWFbutton->addShape


SWFbutton->addShape

(unknown)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape (ressource shape, integer flags)

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 | Anfang | Vor
SWFbutton | Hoch | SWFbutton->setUp


SWFbutton->setUp

(unknown)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup (ressource shape)

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

Zurück | Anfang | Vor
SWFbutton->addShape | Hoch | SWFbutton->setOver


SWFbutton->setOver

(unknown)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover (ressource shape)

swfbutton->setup() alias for addShape(shape, SWFBUTTON_OVER).

Zurück | Anfang | Vor
SWFbutton->setUp | Hoch | SWFbutton->setHit


SWFbutton->setHit

(unknown)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit (ressource shape)

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

Zurück | Anfang | Vor
SWFbutton->setOver | Hoch | SWFbutton->setAction


SWFbutton->setAction

(unknown)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction (ressource action)

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

Zurück | Anfang | Vor
SWFbutton->setHit | Hoch | SWFAction


SWFAction

(PHP 4 CVS only)

SWFAction -- Creates a new Action.

Description

new swfaction (string script)

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 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). The optional method argument can be post or get if you want to submit variables back to the server.

loadMovie(url, target)

Same as above, more or less. Come to think of it, I don't quite know what the difference is.

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();
?>

This simple example will handles keyboard actions. (You'll probably have to click in the window to give it focus. And you'll probably have to leave your mouse in the frame, too. If you know how to give buttons focus programatically, feel free to share, won't you?)

Beispiel 4. swfaction() example

<?php

  /* sprite has one letter per frame */

  $p = new SWFSprite();
  $p->add(new SWFAction("stop();"));

  $chars = "abcdefghijklmnopqrstuvwxyz".
       "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
           "1234567890!@#$%^&*()_+-=/[]{}|;:,.<>?`~";

  $f = new SWFFont("_sans");

  for($n=0; $nremove($i);
    $t = new SWFTextField();
    $t->setFont($f);
    $t->setHeight(240);
    $t->setBounds(600,240);
    $t->align(SWFTEXTFIELD_ALIGN_CENTER);
    $t->addString($c);
    $i = $p->add($t);
    $p->labelFrame($c);
    $p->nextFrame();
  }

  /* hit region for button - the entire frame */

  $s = new SWFShape();
  $s->setFillStyle0($s->addSolidFill(0, 0, 0, 0));
  $s->drawLine(600, 0);
  $s->drawLine(0, 400);
  $s->drawLine(-600, 0);
  $s->drawLine(0, -400);

  /* button checks for pressed key, sends sprite to the right frame */

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT);

  for($n=0; $naddAction(new SWFAction("

setTarget('/char');
gotoFrame('$c');

    "), SWFBUTTON_KEYPRESS($c));
  }

  $m = new SWFMovie();
  $m->setDimension(600,400);
  $i = $m->add($p);
  $i->setName('char');
  $i->moveTo(0,80);

  $m->add($b);

  header('Content-type: application/x-shockwave-flash');
  $m->output();

?>

Zurück | Anfang | Vor
SWFbutton->setAction | Hoch | Sonstige Funktionen


Sonstige Funktionen

PHP Handbuch
Zurück Vor

XLIV. 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
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_string — Hervorhebung der Syntax eines Strings
highlight_file — Syntax-Hervorhebung für eine Datei
ignore_user_abort — Stellt ein, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
iptcparse — Übersetzt einen binären IPTC-http://www.iptc.org/-Block in einzelne Tags.
leak — Speicher-Verbrauch
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 | Anfang | Vor
SWFAction | Hoch | connection_aborted


connection_aborted

(PHP 3>= 3.0.7, PHP 4 >= 4.0b4)

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 | Anfang | Vor
Sonstige Funktionen | Hoch | connection_status


connection_status

(PHP 3>= 3.0.7, PHP 4 >= 4.0b4)

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 | Anfang | Vor
connection_aborted | Hoch | connection_timeout


connection_timeout

(PHP 3>= 3.0.7, 4.0b4 - 4.0.4 only)

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 | Anfang | Vor
connection_status | Hoch | define


define

(PHP 3, PHP 4 )

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 | Anfang | Vor
connection_timeout | Hoch | defined


defined

(PHP 3, PHP 4 )

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 | Anfang | Vor
define | Hoch | die


die

(unknown)

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 | Anfang | Vor
defined | Hoch | eval


eval

(unknown)

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 | Anfang | Vor
die | Hoch | exit


exit

(unknown)

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 | Anfang | Vor
eval | Hoch | get_browser


get_browser

(PHP 3, PHP 4 )

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/FAQ.php.

Zurück | Anfang | Vor
exit | Hoch | highlight_string


highlight_string

(PHP 4 )

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 | Anfang | Vor
get_browser | Hoch | highlight_file


highlight_file

(PHP 4 )

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 | Anfang | Vor
highlight_string | Hoch | ignore_user_abort


ignore_user_abort

(PHP 3>= 3.0.7, PHP 4 >= 4.0b4)

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 | Anfang | Vor
highlight_file | Hoch | iptcparse


iptcparse

(PHP 3>= 3.0.6, PHP 4 )

iptcparse -- Übersetzt einen binären IPTC-http://www.iptc.org/-Block in einzelne Tags.

Beschreibung:

array iptcparse (string iptcblock)

Mit dieser Funktion übertragen sie einen binären IPTC-Block in seine einzelnen Tags. Es wird ein Array zurück gegeben. In diesem bilden die Tag-Markierungen den Index, die Werte stellen den Inhalt dar. Bei einem Fehler oder wenn keine IPTC-Daten gefunden wurden, wird false zurück gegeben. Unter GetImageSize() finden sie ein Beispiel.

Zurück | Anfang | Vor
ignore_user_abort | Hoch | leak


leak

(PHP 3, PHP 4 )

leak -- Speicher-Verbrauch

Beschreibung:

void leak (int bytes)

Leak() belegt die angegebene Speichergrösse.

Diese Funktion ist hilfreich beim Debuggen des Speicher-Managers, der "leaked"-Speicher nach Abarbeitung aller Anforderungen wieder automatisch frei gibt.

Zurück | Anfang | Vor
iptcparse | Hoch | pack


pack

(PHP 3, PHP 4 )

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 Sichern eines Bytes

  • @ 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 | Anfang | Vor
leak | Hoch | show_-source


show_-source

(unknown)

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 | Anfang | Vor
pack | Hoch | sleep


sleep

(PHP 3, PHP 4 )

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 | Anfang | Vor
show_-source | Hoch | uniqid


uniqid

(PHP 3, PHP 4 )

uniqid -- Erzeugt eine eindeutige ID

Beschreibung:

int 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 | Anfang | Vor
sleep | Hoch | unpack


unpack

(PHP 3, PHP 4 )

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 | Anfang | Vor
uniqid | Hoch | usleep


usleep

(PHP 3, PHP 4 )

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 | Anfang | Vor
unpack | Hoch | mnoGoSearch Functions


mnoGoSearch Functions

PHP Handbuch
Zurück Vor

XLV. mnoGoSearch Functions

These functions allow you to access mnoGoSearch (former UdmSearch) free search engine. In order to have these functions available, you must compile php with mnogosearch support by using the --with-mnogosearch option. If you use this option without specifying the path to mnogosearch, php will look for mnogosearch under /usr/local/mnogosearch path by default. If you installed mnogosearch at other path you should specify it: --with-mnogosearch=DIR.

mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has number of unique features, which makes it appropriate for a wide range of application from search within your site to a specialized search system such as cooking recipes or newspaper search, ftp archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data collected by indexer is used later in a search process. The search is performed via Web interface. C CGI, PHP and Perl search front ends are included.

Anmerkung: php contains built-in mysql access library, which can be used to access mysql. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic mysql libraries. Thus, if you use mnoGoSearch with mysql, during php configuration you have to indicate directory of mysql installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr

You need at least 3.1.10 version of mnoGoSearch installed to use these functions.

More information about mnoGoSearch can be found at http://www.mnogosearch.ru/.

Inhaltsverzeichnis
udm_add_search_limit — Add various search limits
udm_alloc_agent — Allocate mnoGoSearch session
udm_api_version — Get mnoGoSearch API version.
udm_clear_search_limits — Clear all mnoGoSearch search restrictions
udm_errno — Get mnoGoSearch error number
udm_error — Get mnoGoSearch error message
udm_find — Perform search
udm_free_agent — Free mnoGoSearch session
udm_free_ispell_data — Free memory allocated for ispell data
udm_free_res — Free mnoGoSearch result
udm_get_doc_count — Get total number of documents in database.
udm_get_res_field — Fetch mnoGoSearch result field
udm_get_res_param — Get mnoGoSearch result parameters
udm_load_ispell_data — Load ispell data
udm_set_agent_param — Set mnoGoSearch agent session parameters
Zurück | Anfang | Vor
usleep | Hoch | udm_add_search_limit


udm_add_search_limit

(PHP 4 CVS only)

udm_add_search_limit -- Add various search limits

Description

int udm_add_search_limit (int agent, int var, string val)

udm_add_search_limit() returns TRUE on success, FALSE on error. Adds search restrictions.

agent - a link to Agent, received after call to udm_alloc_agent().

var - defines parameter, indicating limit.

val - defines value of the current parameter.

Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit search through subsection of database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://my.domain.__/catalog may stand for http://my.domain.ru/catalog and http://my.domain.ua/catalog.

  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.

  • UDM_LIMIT_LANG - defines document language limitations.

  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the url.

  • UDM_LIMIT_DATE - defines limitation by date document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    Udm_Add_Search_Limit($udm,UDM_LIMIT_DATE,"<908012006");

    If > character is used, then search will be restricted to those documents having modification date greater than entered. If <, then smaller.

Zurück | Anfang | Vor
mnoGoSearch Functions | Hoch | udm_alloc_agent


udm_alloc_agent

(PHP 4 CVS only)

udm_alloc_agent -- Allocate mnoGoSearch session

Description

int udm_alloc_agent (string dbaddr [, string dbmode])

udm_alloc_agent() returns mnogosearch agent identifier on success, FALSE on error. This function creates a session with database parameters.

dbaddr - URL-style database description. Options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format: DBAddr DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/ Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, ibase. Actually, it does not matter for native libraries support. But ODBC users should specify one of supported values. If your database type is not supported, you may use "unknown" instead.

dbmode - You may select SQL database mode of words storage. When "single" is specified, all words are stored in the same table. If "multi" is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster but requires more tables in database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorythm instead of words. This mode requres less disk space and it is faster comparing with "single" and "multi" modes. "crc-multi" uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like "multi" mode. Format: DBMode single/multi/crc/crc-multi

Anmerkung: dbaddr and dbmode must match those used during indexing.

Anmerkung: In fact this function does not open connection to database and thus does not check entered login and password. Actual connection to database and login/password verification is done by udm_find().

Zurück | Anfang | Vor
udm_add_search_limit | Hoch | udm_api_version


udm_api_version

(PHP 4 CVS only)

udm_api_version -- Get mnoGoSearch API version.

Description

int udm_api_version ()

udm_api_version() returns mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

This function allows user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

Example:

          if (Udm_Api_Version() >= 30111) {
       print  "Total number of urls in database: ".Udm_Get_Doc_Count($udm)."<br>\n";
    }

Zurück | Anfang | Vor
udm_alloc_agent | Hoch | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 CVS only)

udm_clear_search_limits -- Clear all mnoGoSearch search restrictions

Description

int udm_clear_search_limits (int agent)

udm_clear_search_limits() resets defined search limitations and returns TRUE.

Zurück | Anfang | Vor
udm_api_version | Hoch | udm_errno


udm_errno

(PHP 4 CVS only)

udm_errno -- Get mnoGoSearch error number

Description

int udm_errno (int agent)

udm_errno() returns mnoGoSearch error number, zero if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving numeric agent error code.

Zurück | Anfang | Vor
udm_clear_search_limits | Hoch | udm_error


udm_error

(PHP 4 CVS only)

udm_error -- Get mnoGoSearch error message

Description

string udm_error (int agent)

udm_error() returns mnoGoSearch error message, empty string if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving agent error message.

Zurück | Anfang | Vor
udm_errno | Hoch | udm_find


udm_find

(PHP 4 CVS only)

udm_find -- Perform search

Description

int udm_find (int agent, string query)

udm_find() returns result link identifier on success, FALSE on error.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Zurück | Anfang | Vor
udm_error | Hoch | udm_free_agent


udm_free_agent

(PHP 4 CVS only)

udm_free_agent -- Free mnoGoSearch session

Description

int udm_free_agent (int agent)

udm_free_agent() returns TRUE on success, FALSE on error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Freeing up memory allocated for agent session.

Zurück | Anfang | Vor
udm_find | Hoch | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 CVS only)

udm_free_ispell_data -- Free memory allocated for ispell data

Description

int udm_free_ispell_data (int agent)

udm_free_ispell_data() always returns TRUE.

agent - agent link identifier, received after call to udm_alloc_agent().

Anmerkung: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

Zurück | Anfang | Vor
udm_free_agent | Hoch | udm_free_res


udm_free_res

(PHP 4 CVS only)

udm_free_res -- Free mnoGoSearch result

Description

int udm_free_res (int res)

udm_free_res() returns TRUE on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

Freeing up memory allocated for results.

Zurück | Anfang | Vor
udm_free_ispell_data | Hoch | udm_get_doc_count


udm_get_doc_count

(PHP 4 CVS only)

udm_get_doc_count -- Get total number of documents in database.

Description

int udm_get_doc_count (int agent)

udm_get_doc_count() returns nuimber of documents in database.

agent - link to agent identifier, received after call to udm_alloc_agent().

Anmerkung: This function is supported only in mnoGoSearch 3.1.11 or later.

Zurück | Anfang | Vor
udm_free_res | Hoch | udm_get_res_field


udm_get_res_field

(PHP 4 CVS only)

udm_get_res_field -- Fetch mnoGoSearch result field

Description

string udm_get_res_field (int res, int row, int field)

udm_get_res_field() returns result field value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS.

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field

  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).

  • UDM_FIELD_TITLE - document title field.

  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).

  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).

  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).

  • UDM_FIELD_SIZE - document size.

  • UDM_FIELD_URLID - unique URL ID of the link.

  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).

  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.

  • UDM_FIELD_ORDER - the number of the current document in set of found documents.

  • UDM_FIELD_CRC - document CRC.

Zurück | Anfang | Vor
udm_get_doc_count | Hoch | udm_get_res_param


udm_get_res_param

(PHP 4 CVS only)

udm_get_res_param -- Get mnoGoSearch result parameters

Description

string udm_get_res_param (int res, int param)

udm_get_res_param() returns result parameter value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.

  • UDM_PARAM_FOUND - total number of results matching the query.

  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"

  • UDM_PARAM_SEARCHTIME - search time in seconds.

  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.

  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Zurück | Anfang | Vor
udm_get_res_field | Hoch | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 CVS only)

udm_load_ispell_data -- Load ispell data

Description

int udm_load_ispell_data (int agent, int var, string val1, string val2, int flag)

udm_load_ispell_data() loads ispell data. Returns TRUE on success, FALSE on error.

agent - agent link identifier, received after call to udm_alloc_agent().

var - parameter, indicating the source for ispell data. May have the following values:

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is true for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Anmerkung: flag indicates that after loading ispell data from defined source it sould be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

    Example:

           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 - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Example:

           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 is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Example:

           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 is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Anmerkung: This function is available in mnoGoSearch 3.1.12 or later.

    Example:

    if (! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
        printf("Error loading ispell data from server<br>\n");
        exit;
    }

Zurück | Anfang | Vor
udm_get_res_param | Hoch | udm_set_agent_param


udm_set_agent_param

(PHP 4 CVS only)

udm_set_agent_param -- Set mnoGoSearch agent session parameters

Description

int udm_set_agent_param (int agent, int var, string val)

udm_set_agent_param() returns TRUE on success, FALSE on error. Defines mnoGoSearch session parameters.

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).

  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.

  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.

  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current UNIX timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and buuilt-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well.

    Examples of phrase search:

    "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase

  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the php script is executed.)

  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.

  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

    URLWeight 1

    BodyWeight 2

    TitleWeight 4

    KeywordWeight 8

    DescWeight 16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 argegate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight.

    This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

    E is a factor for weight 1 (URL Weight bit)

    D is a factor for weight 2 (BodyWeight bit)

    C is a factor for weight 4 (TitleWeight bit)

    B is a factor for weight 8 (KeywordWeight bit)

    A is a factor for weight 16 (DescWeight bit)

    Examples:

    UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only.

    UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only.

    UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Desctription but not through URL and Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:

    Description with factor 15 (F hex)

    Keywords with factor 9

    Title with factor 4

    Body with factor 2

    URL with factor 1

    If UDM_PARAM_WEIGHT_FACTOR variable is ommited, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.

  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values:

    UDM_MATCH_BEGIN - word beginning match;

    UDM_MATCH_END - word ending match;

    UDM_MATCH_WORD - whole word match;

    UDM_MATCH_SUBSTR - word substring match.

  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this paraneter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.

  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED.

    The corsswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.

    Anmerkung: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

Zurück | Anfang | Vor
udm_load_ispell_data | Hoch | mSQL functions


mSQL functions

PHP Handbuch
Zurück Vor

XLVI. mSQL functions

These functions allow you to access mSQL database servers. In order to have these functions available, you must compile php with msql support by using the --with-msql[=dir] option. The default location is /usr/local/Hughes.

More information about mSQL can be found at http://www.hughes.com.au/.

Inhaltsverzeichnis
msql — Send mSQL query
msql_affected_rows — Returns number of affected rows
msql_close — Close mSQL connection
msql_connect — Open mSQL connection
msql_create_db — Create mSQL database
msql_createdb — Create mSQL database
msql_data_seek — Move internal row pointer
msql_dbname — Get current mSQL database name
msql_drop_db — Drop (delete) mSQL database
msql_dropdb — Drop (delete) mSQL database
msql_error — Returns error message of last msql call
msql_fetch_array — Fetch row as array
msql_fetch_field — Get field information
msql_fetch_object — Fetch row as object
msql_fetch_row — Get row as enumerated array
msql_fieldname — Get field name
msql_field_seek — Set field offset
msql_fieldtable — Get table name for field
msql_fieldtype — Get field type
msql_fieldflags — Get field flags
msql_fieldlen — Get field length
msql_free_result — Free result memory
msql_freeresult — Free result memory
msql_list_fields — List result fields
msql_listfields — List result fields
msql_list_dbs — List mSQL databases on server
msql_listdbs — List mSQL databases on server
msql_list_tables — List tables in an mSQL database
msql_listtables — List tables in an mSQL database
msql_num_fields — Get number of fields in result
msql_num_rows — Get number of rows in result
msql_numfields — Get number of fields in result
msql_numrows — Get number of rows in result
msql_pconnect — Open persistent mSQL connection
msql_query — Send mSQL query
msql_regcase — Make regular expression for case insensitive match
msql_result — Get result data
msql_select_db — Select mSQL database
msql_selectdb — Select mSQL database
msql_tablename — Get table name of field
Zurück | Anfang | Vor
udm_set_agent_param | Hoch | msql


msql

(PHP 3, PHP 4 )

msql -- Send mSQL query

Description

int msql (string database, string query, int link_identifier)

Returns a positive mSQL query identifier to the query result, or false on error.

msql() selects a database and executes a query on it. If the optional link identifier isn't specified, the function will try to find an open link to the mSQL server and if no such link is found it'll try to create one as if msql_connect() was called with no arguments (see msql_connect()).

Zurück | Anfang | Vor
mSQL functions | Hoch | msql_affected_rows


msql_affected_rows

(PHP 3>= 3.0.6, PHP 4 )

msql_affected_rows -- Returns number of affected rows

Description

int msql_affected_rows (int query_identifier)

Returns number of affected ("touched") rows by a specific query (i.e. the number of rows returned by a SELECT, the number of rows modified by an update, or the number of rows removed by a delete).

See also: msql_query().

Zurück | Anfang | Vor
msql | Hoch | msql_close


msql_close

(PHP 3, PHP 4 )

msql_close -- Close mSQL connection

Description

int msql_close (int link_identifier)

Returns true on success, false on error.

msql_close() closes the link to a mSQL database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

msql_close() will not close persistent links generated by msql_pconnect().

See also: msql_connect() and msql_pconnect().

Zurück | Anfang | Vor
msql_affected_rows | Hoch | msql_connect


msql_connect

(PHP 3, PHP 4 )

msql_connect -- Open mSQL connection

Description

int msql_connect ([string hostname [, string hostname[:port] [, string username [, string password]]]])

Returns a positive mSQL link identifier on success, or false on error.

msql_connect() establishes a connection to a mSQL server. The hostname argument is optional, and if it's missing, localhost is assumed.

In case a second call is made to msql_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 msql_close().

See also msql_pconnect(), msql_close().

Zurück | Anfang | Vor
msql_close | Hoch | msql_create_db


msql_create_db

(PHP 3, PHP 4 )

msql_create_db -- Create mSQL database

Description

int msql_create_db (string database name [, int link_identifier])

msql_create_db() attempts to create a new database on the server associated with the specified link identifier.

See also: msql_drop_db().

Zurück | Anfang | Vor
msql_connect | Hoch | msql_createdb


msql_createdb

(PHP 3, PHP 4 )

msql_createdb -- Create mSQL database

Description

int msql_createdb (string database name [, int link_identifier])

Identical to msql_create_db().

Zurück | Anfang | Vor
msql_create_db | Hoch | msql_data_seek


msql_data_seek

(PHP 3, PHP 4 )

msql_data_seek -- Move internal row pointer

Description

int msql_data_seek (int query_identifier, int row_number)

Returns true on success, false on failure.

msql_data_seek() moves the internal row pointer of the mSQL result associated with the specified query identifier to pointer to the specifyed row number. The next call to msql_fetch_row() would return that row.

See also: msql_fetch_row().

Zurück | Anfang | Vor
msql_createdb | Hoch | msql_dbname


msql_dbname

(PHP 3, PHP 4 )

msql_dbname -- Get current mSQL database name

Description

string msql_dbname (int query_identifier, int i)

msql_dbname() returns the database name stored in position i of the result pointer returned from the msql_listdbs() function. The msql_numrows() function can be used to determine how many database names are available.

Zurück | Anfang | Vor
msql_data_seek | Hoch | msql_drop_db


msql_drop_db

(PHP 3, PHP 4 )

msql_drop_db -- Drop (delete) mSQL database

Description

int msql_drop_db (string database_name, int link_identifier)

Returns true on success, false on failure.

msql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

See also: msql_create_db().

Zurück | Anfang | Vor
msql_dbname | Hoch | msql_dropdb


msql_dropdb

(PHP 3, PHP 4 )

msql_dropdb -- Drop (delete) mSQL database

Description

See msql_drop_db().

Zurück | Anfang | Vor
msql_drop_db | Hoch | msql_error


msql_error

(PHP 3, PHP 4 )

msql_error -- Returns error message of last msql call

Description

string msql_error ()

Errors coming back from the mSQL database backend no longer issue warnings. Instead, use these functions to retrieve the error string.

Zurück | Anfang | Vor
msql_dropdb | Hoch | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4 )

msql_fetch_array -- Fetch row as array

Description

int msql_fetch_array (int query_identifier [, int result_type])

Returns an array that corresponds to the fetched row, or false if there are no more rows.

msql_fetch_array() is an extended version of msql_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.

The second optional argument result_type in msql_fetch_array() is a constant and can take the following values: MSQL_ASSOC, MSQL_NUM, and MYSQL_BOTH.

Be careful if you are retrieving results from a query that may return a record that contains only one field that has a value of 0 (or an empty string, or NULL).

An important thing to note is that using msql_fetch_array() is NOT significantly slower than using msql_fetch_row(), while it provides a significant added value.

For further details, also see msql_fetch_row().

Zurück | Anfang | Vor
msql_error | Hoch | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4 )

msql_fetch_field -- Get field information

Description

object msql_fetch_field (int query_identifier, int field_offset)

Returns an object containing field information

msql_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 retreived by msql_fetch_field() is retreived.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • not_null - 1 if the column cannot be null

  • primary_key - 1 if the column is a primary key

  • unique - 1 if the column is a unique key

  • type - the type of the column

See also msql_field_seek().

Zurück | Anfang | Vor
msql_fetch_array | Hoch | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4 )

msql_fetch_object -- Fetch row as object

Description

int msql_fetch_object (int query_identifier [, int result_type])

Returns an object with properties that correspond to the fetched row, or false if there are no more rows.

msql_fetch_object() is similar to msql_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 second argument result_type in msql_fetch_array() is a constant and can take the following values: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH.

Speed-wise, the function is identical to msql_fetch_array(), and almost as quick as msql_fetch_row() (the difference is insignificant).

See also: msql_fetch_array() and msql_fetch_row().

Zurück | Anfang | Vor
msql_fetch_field | Hoch | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4 )

msql_fetch_row -- Get row as enumerated array

Description

array msql_fetch_row (int query_identifier)

Returns an array that corresponds to the fetched row, or false if there are no more rows.

msql_fetch_row() fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to msql_fetch_row() would return the next row in the result set, or false if there are no more rows.

See also: msql_fetch_array(),
msql_fetch_object(),
msql_data_seek(), and
msql_result().

Zurück | Anfang | Vor
msql_fetch_object | Hoch | msql_fieldname


msql_fieldname

(PHP 3, PHP 4 )

msql_fieldname -- Get field name

Description

string msql_fieldname (int query_identifier, int field)

msql_fieldname() returns the name of the specified field. query_identifier is the query identifier, and field is the field index. msql_fieldname($result, 2); will return the name of the second field in the result associated with the result identifier.

Zurück | Anfang | Vor
msql_fetch_row | Hoch | msql_field_seek


msql_field_seek

(PHP 3, PHP 4 )

msql_field_seek -- Set field offset

Description

int msql_field_seek (int query_identifier, int field_offset)

Seeks to the specified field offset. If the next call to msql_fetch_field() won't include a field offset, this field would be returned.

See also: msql_fetch_field().

Zurück | Anfang | Vor
msql_fieldname | Hoch | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4 )

msql_fieldtable -- Get table name for field

Description

int msql_fieldtable (int query_identifier, int field)

Returns the name of the table field was fetched from.

Zurück | Anfang | Vor
msql_field_seek | Hoch | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4 )

msql_fieldtype -- Get field type

Description

string msql_fieldtype (int query_identifier, int i)

msql_fieldtype() is similar to the msql_fieldname() function. The arguments are identical, but the field type is returned. This will be one of "int", "char" or "real".

Zurück | Anfang | Vor
msql_fieldtable | Hoch | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4 )

msql_fieldflags -- Get field flags

Description

string msql_fieldflags (int query_identifier, int i)

msql_fieldflags() 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 | Anfang | Vor
msql_fieldtype | Hoch | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4 )

msql_fieldlen -- Get field length

Description

int msql_fieldlen (int query_identifier, int i)

msql_fieldlen() returns the length of the specified field.

Zurück | Anfang | Vor
msql_fieldflags | Hoch | msql_free_result


msql_free_result

(PHP 3, PHP 4 )

msql_free_result -- Free result memory

Description

int msql_free_result (int query_identifier)

msql_free_result() frees the memory associated with query_identifier. When PHP completes a request, this memory is freed automatically, so you only need to call this function when you want to make sure you don't use too much memory while the script is running.

Zurück | Anfang | Vor
msql_fieldlen | Hoch | msql_freeresult


msql_freeresult

(PHP 3, PHP 4 )

msql_freeresult -- Free result memory

Description

See msql_free_result()

Zurück | Anfang | Vor
msql_free_result | Hoch | msql_list_fields


msql_list_fields

(PHP 3, PHP 4 )

msql_list_fields -- List result fields

Description

int msql_list_fields (string database, string tablename)

msql_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 msql_fieldflags(), msql_fieldlen(), msql_fieldname(), and msql_fieldtype(). A query identifier is a positive integer. The function returns -1 if a error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @msql_list_fields() then this error string will also be printed out.

See also msql_error().

Zurück | Anfang | Vor
msql_freeresult | Hoch | msql_listfields


msql_listfields

(PHP 3, PHP 4 )

msql_listfields -- List result fields

Description

See msql_list_fields().

Zurück | Anfang | Vor
msql_list_fields | Hoch | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4 )

msql_list_dbs -- List mSQL databases on server

Description

int msql_list_dbs(void);

msql_list_dbs() will return a result pointer containing the databases available from the current msql daemon. Use the msql_dbname() function to traverse this result pointer.

Zurück | Anfang | Vor
msql_listfields | Hoch | msql_listdbs


msql_listdbs

(PHP 3, PHP 4 )

msql_listdbs -- List mSQL databases on server

Description

See msql_list_dbs().

Zurück | Anfang | Vor
msql_list_dbs | Hoch | msql_list_tables


msql_list_tables

(PHP 3, PHP 4 )

msql_list_tables -- List tables in an mSQL database

Description

int msql_list_tables (string database)

msql_list_tables() takes a database name and
result pointer much like the msql()
function. The msql_tablename() function should
be used to extract the actual table names from the result
pointer.

Zurück | Anfang | Vor
msql_listdbs | Hoch | msql_listtables


msql_listtables

(PHP 3, PHP 4 )

msql_listtables -- List tables in an mSQL database

Description

See msql_list_tables().

Zurück | Anfang | Vor
msql_list_tables | Hoch | msql_num_fields


msql_num_fields

(PHP 3, PHP 4 )

msql_num_fields -- Get number of fields in result

Description

int msql_num_fields (int query_identifier)

msql_num_fields() returns the number of fields in a result set.

See also: msql(),
msql_query(),
msql_fetch_field(), and
msql_num_rows().

Zurück | Anfang | Vor
msql_listtables | Hoch | msql_num_rows


msql_num_rows

(PHP 3, PHP 4 )

msql_num_rows -- Get number of rows in result

Description

int msql_num_rows (int query_identifier)

Msql_num_rows() returns the number of rows in a result set.

See also: msql(),
msql_query(), and
msql_fetch_row().

Zurück | Anfang | Vor
msql_num_fields | Hoch | msql_numfields


msql_numfields

(PHP 3, PHP 4 )

msql_numfields -- Get number of fields in result

Description

int msql_numfields (int query_identifier)

Identical to msql_num_fields().

Zurück | Anfang | Vor
msql_num_rows | Hoch | msql_numrows


msql_numrows

(PHP 3, PHP 4 )

msql_numrows -- Get number of rows in result

Description

int msql_numrows(void);

Identical to msql_num_rows().

Zurück | Anfang | Vor
msql_numfields | Hoch | msql_pconnect


msql_pconnect

(PHP 3, PHP 4 )

msql_pconnect -- Open persistent mSQL connection

Description

int msql_pconnect ([string hostname [, string hostname[:port] [, string username [, string password]]]])

Returns a positive mSQL persistent link identifier on success, or false on error.

msql_pconnect() acts very much like msql_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. 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 (msql_close() will not close links established by msql_pconnect()).

This type of links is therefore called 'persistent'.

Zurück | Anfang | Vor
msql_numrows | Hoch | msql_query


msql_query

(PHP 3, PHP 4 )

msql_query -- Send mSQL query

Description

int msql_query (string query, int link_identifier)

msql_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 msql_connect() was called, and use it.

Returns a positive mSQL query identifier on success, or false on error.

See also: msql(),
msql_select_db(), and
msql_connect().

Zurück | Anfang | Vor
msql_pconnect | Hoch | msql_regcase


msql_regcase

(PHP 3, PHP 4 )

msql_regcase -- Make regular expression for case insensitive match

Description

See sql_regcase().

Zurück | Anfang | Vor
msql_query | Hoch | msql_result


msql_result

(PHP 3, PHP 4 )

msql_result -- Get result data

Description

int msql_result (int query_identifier, int i, mixed field)

Returns the contents of the cell at the row and offset in the specified mSQL result set.

msql_result() returns the contents of one cell from a mSQL 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 (fieldname.tablename). 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 msql_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:
msql_fetch_row(),
msql_fetch_array(), and
msql_fetch_object().

Zurück | Anfang | Vor
msql_regcase | Hoch | msql_select_db


msql_select_db

(PHP 3, PHP 4 )

msql_select_db -- Select mSQL database

Description

int msql_select_db (string database_name, int link_identifier)

Returns true on success, false on error.

msql_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 msql_connect() was called, and use it.

Every subsequent call to msql_query() will be made on the active database.

See also: msql_connect(),
msql_pconnect(), and
msql_query().

Zurück | Anfang | Vor
msql_result | Hoch | msql_selectdb


msql_selectdb

(PHP 3, PHP 4 )

msql_selectdb -- Select mSQL database

Description

See msql_select_db().

Zurück | Anfang | Vor
msql_select_db | Hoch | msql_tablename


msql_tablename

(PHP 3, PHP 4 )

msql_tablename -- Get table name of field

Description

string msql_tablename (int query_identifier, int field)

msql_tablename() takes a result pointer returned by the msql_list_tables() function as well as an integer index and returns the name of a table. The msql_numrows() function may be used to determine the number of tables in the result pointer.

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 | Anfang | Vor
msql_selectdb | Hoch | MySQL Funktionen


MySQL Funktionen

PHP Handbuch
Zurück Vor

XLVII. MySQL Funktionen

Diese Funktionen erlauben den Zugriff auf einen MySQL Datenbank-Server.

Weiter Informationen zu MySQL gibt es unter http://www.mysql.com/.

In diesem Dokument werden ein 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 impliziet als auch expliziet 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 weiters 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.

Inhaltsverzeichnis
mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation
mysql_change_user — Ändert den zur Zeit angemeldeten Benutzer
mysql_close — Schließt eine Verbindung zum Datenbank-Server
mysql_connect — Öffnet eine Verbindung zum Datenbank-Server
mysql_create_db — Erzeugt eine Datenbank
mysql_data_seek — Bewegt internen Datensatz-Zeiger
mysql_db_query — Absetzen einer Anfrage an die Datenbank
mysql_drop_db — Entfernt eine Datenbank
mysql_errno — Liefert die Fehlernummer einer zuvor ausgeführten Operation
mysql_error — Liefert den Fehlertext der zuvor ausgeführten MySQL Operation
mysql_fetch_array — 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 Datensatz
mysql_fetch_object — Liefert einen Datensatz als Objekt
mysql_fetch_row — Liefert einen Datensatz als indiziertes Array
mysql_field_name — Liefert den Namen eines Feldes in einem Anfrageergebnis
mysql_field_seek — Setzt den Feldzeiger auf ein bestimmtes Feld
mysql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält
mysql_field_type — Liefert den Typ eines Feldes in einem Anfrageergebnis
mysql_field_flags — Liefert die Flags eines Feldes in einem Anfrageergebnis
mysql_field_len — Liefert die Länge eines Feldes
mysql_free_result — Gibt den belegten Speicher wieder frei
mysql_insert_id — Liefert die Kennung einer vorherigen INSERT-Operation
mysql_list_fields — Listet die Felder einer Tabelle auf
mysql_list_dbs — Liefert eine Liste der verfügbaren Datenbanken auf dem Server
mysql_list_tables — Liefert eine Liste der Tabellen in einer Datenbank
mysql_num_fields — Liefert die Anzahl der Felder in einem Ergebnis
mysql_num_rows — Liefert die Anzahl der Datensätze im Ergebnis
mysql_pconnect — Öffnete eine persistente Verbindung zum MySQL Server
mysql_query — Sendet eine SQL Anfrage zum Datenbankserver
mysql_result — Liefert Ergebnis
mysql_select_db — Wählt eine Datenbank aus
mysql_tablename — Liefert den Namen einer Tabelle
Zurück | Anfang | Vor
msql_tablename | Hoch | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4 )

mysql_affected_rows -- Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation

Beschreibung

int mysql_affected_rows ([int Verbindungs-Kennung])

Mysql_affected_rows() liefert die Anzahl betroffener Datensätze durch die letzte INSERT, UPDATE oder DELETE Anfrage an den Server, der mit der angegebenen Verbindungskennung assoziiert wird. Wenn die Verbindungskennung nicht angegeben wird, wird die zur Zeit offene Verbindung verwendet.

Wenn die letzte Anfrage ein DELETE ohne WHERE-Anweisung war, wurden alle Datensätze aus der Tabelle gelöscht, die Funktion wird aber trotzdem Null zurückliefern.

Diese Funktion macht keinen Sinn bei SELECT-Anfragen, sondern nur wenn Datensätze modifiziert wurden. Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten, benutzen Sie die Funktion mysql_num_rows().

Zurück | Anfang | Vor
MySQL Funktionen | Hoch | mysql_change_user


mysql_change_user

(PHP 3>= 3.0.13)

mysql_change_user -- Ändert den zur Zeit angemeldeten Benutzer

Beschreibung

int mysql_change_user (string Benutzername, string Kennwort [, string Datenbank [, int Verbindungs-Kennung]])

Mysql_change_user() ändert den angemeldeten Benutzer der Datenbank-Verbindung in den Benutzer mit dem übergebenen Namen und Kennwort. Fehlt die Verbindungs-Kennung wird die Änderung für die aktive Verbindung vorgenommen. If a database is specified, this will default or current database after the user has been changed. Wenn die Anmeldung als neuer Benutzer mit dem angegebenen Kennwort fehlschlägt, bleibt der aktuelle Benutzer aktiv.

Anmerkung:

Diese Funktion wurde mit PHP 3.0.13 eingeführt und erfordert MySQL 3.23.3 oder höher.

Zurück | Anfang | Vor
mysql_affected_rows | Hoch | mysql_close


mysql_close

(PHP 3, PHP 4 )

mysql_close -- Schließt eine Verbindung zum Datenbank-Server

Beschreibung

int mysql_close ([int Verbindungs-Kennung])

Rückgabewert: true im Erfolgsfall, false im Fehlerfall.

Mysql_close() schließt die Verbindung zur MySQL-Datenbank, die zur Verbindungs-Kennung gehört. Wenn die Verbindungs-Kennung nicht angegeben wird, wird die aktuelle Verbindung geschlossen.

Anmerkung: Dies ist für gewöhnlich nicht notwendig, weil nichtpersistente offene Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden.

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 ("kraemer", "marliesle", "secret")
        or die ("Could not connect");
    print ("Connected successfully");
    mysql_close ($link);
?>

Siehe auch: mysql_connect() und mysql_pconnect().

Zurück | Anfang | Vor
mysql_change_user | Hoch | mysql_connect


mysql_connect

(PHP 3, PHP 4 )

mysql_connect -- Öffnet eine Verbindung zum Datenbank-Server

Beschreibung

int mysql_connect ([string hostname[:port][:/path/to/socket] [, string Benutzername [, string Kennwort]]])

Rückgabewert: Eine Verbindungs-Kennung im Erfolgsfall oder false im Fehlerfall.

Mysql_connect() öffnet eine Verbindung zu einem MySQL server. Alle Argumente sind optional, und wenn alle fehlen wird ('localhost', Benutzername des Benutzers dem der Server-Prozess gehört, leeres Kennwort) angenommen.

Der Parameter hostname kann zudem die Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem Socket z.B. ":/path/to/socket" für Zugriffe auf dem lokalen Rechner.

Anmerkung: Unterstützung für ":port" wurde in PHP 3.0B4 hinzugefügt.

Unterstützung für ":/path/to/socket" wurde in PHP 3.0.10 hinzugefügt.

Fehlermeldung können unterdrückt werden, wenn dem Funktionsname ein '@' voran gestellt wird.

Für den Fall, dass ein Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungs-Kennung der schon bestehenden Verbindung zurückgeliefert.

Die Verbindung zum Datenbank-Server wird geschlossen, sobald das PHP-Skript beendet wird oder mysql_close() aufgerufen wird.

Beispiel 1. Verbindung zum Datenbanksserver öffnen

<?php
    $link = mysql_connect ("kraemer", "marliesle", "secret")
        or die ("Could not connect");
    print ("Connected successfully");
    mysql_close ($link);
?>

Siehe auch mysql_pconnect() und mysql_close().

Zurück | Anfang | Vor
mysql_close | Hoch | mysql_create_db


mysql_create_db

(PHP 3, PHP 4 )

mysql_create_db -- Erzeugt eine Datenbank

Beschreibung

int mysql_create_db (string Datenbankname [, int Verbindungs-Kennung])

mysql_create_db() versucht eine neue Datenbank auf dem Server mit der angegebenen Verbindungs-Kennung zu erzeugen.

Beispiel 1. Erzeugen einer Datenbank

<?php
    $link = mysql_pconnect ("kron", "jutta", "geheim")
        or die ("Could not connect");
    if (mysql_create_db ("my_db")) {
        print ("Database created successfully\n");
    } else {
        printf ("Error creating database: %s\n", mysql_error ());
    }
?>

Für Abwärtskompatibilität kann auch mysql_createdb() verwendet werden.

Siehe auch: mysql_drop_db().

Zurück | Anfang | Vor
mysql_connect | Hoch | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4 )

mysql_data_seek -- Bewegt internen Datensatz-Zeiger

Beschreibung

int mysql_data_seek (int Ergebnis-Kennung, int Datensatznummer)

Rückgabewert: true im Erfolgsfall, false im Fehlerfall.

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.

Das Argument Datensatznummer ist 0 oder größer.

Beispiel 1. Positionieren des Datensatzzeigers

<?php
    $link = mysql_pconnect ("kron", "jutta", "geheim")
        or die ("Could not connect");

    mysql_select_db ("samp_db")
        or die ("Could not select database");

    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query ($query)
        or die ("Query failed");

    # fetch rows in reverse order

    for ($i = mysql_num_rows ($result) - 1; $i >=0; $i--) {
        if (!mysql_data_seek ($result, $i)) {
            printf ("Cannot seek to row %d\n", $i);
            continue;
        }

        if(!($row = mysql_fetch_object ($result)))
            continue;

        printf ("%s %s<BR>\n", $row->last_name, $row->first_name);
    }

    mysql_free_result ($result);
?>

Zurück | Anfang | Vor
mysql_create_db | Hoch | mysql_db_query


mysql_db_query

(PHP 3, PHP 4 )

mysql_db_query -- Absetzen einer Anfrage an die Datenbank

Beschreibung

int mysql_db_query (string Datenbank, string Anfrage [, int Verbindungs-Kennung])

Rückgabewert: Eine Ergebnis-Kennung als Referenz auf das Anfrageergebnis, oder false im Fehlerfall.

Msql_db_query() wählt eine Datenbank und führt eine Anfrage darauf aus. Wenn der optionale Parameter Verbindungs-Kennung nicht angegeben ist, wird versucht die aktuelle Verbindung zu nutzen. Wenn auch dies fehlschlägt, wird weiter versucht die Verbindung aufzubauen, wie dies mit mysql_connect() ohne Angabe von Argumenten geschehen würde.

Für Abwärtskompatibilität kann auch mysql() verwendet werden.

Siehe auch mysql_connect().

Zurück | Anfang | Vor
mysql_data_seek | Hoch | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4 )

mysql_drop_db -- Entfernt eine Datenbank

Beschreibung

int mysql_drop_db (string Datenbankname [, int Verbindungs-Kennung])

Rückgabewert: true im Erfolgsfall, false ein Fehlerfall.

mysql_drop_db() versucht eine komplette Datenbank vom Server mit der übergebenen Verbindungs-Kennung zu entfernen.

Siehe auch: mysql_create_db(). Für Abwärtskompatibilität kann auch mysql_dropdb() verwendet werden.

Zurück | Anfang | Vor
mysql_db_query | Hoch | mysql_errno


mysql_errno

(PHP 3, PHP 4 )

mysql_errno -- Liefert die Fehlernummer einer zuvor ausgeführten Operation

Beschreibung

int mysql_errno ([int Verbindungs-Kennung])

Fehler, die vom MySQL Server kommen, führen nicht zu einer Ausgabe von Warnungen. Stattdessen, sollte diese Funktion verwendet werden, um die Fehlernummer zu erhalten.

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

Siehe auch: mysql_error()

Zurück | Anfang | Vor
mysql_drop_db | Hoch | mysql_error


mysql_error

(PHP 3, PHP 4 )

mysql_error -- Liefert den Fehlertext der zuvor ausgeführten MySQL Operation

Beschreibung

string mysql_error ([int Verbindungs-Kennung])

Fehler, die vom MySQL Server kommen, führen nicht zu einer Ausgabe von Warnungen. Stattdessen, sollte diese Funktion verwendet werden, um den Fehlertext zu erhalten.

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

Siehe auch: mysql_errno()

Zurück | Anfang | Vor
mysql_errno | Hoch | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4 )

mysql_fetch_array -- Liefert einen Datensatz als assoziatives Array

Beschreibung

array mysql_fetch_array (int Ergebnis-Kennung [, int Ergebnistyp])

Liefert ein Array der den aktuellen Datensatz enthält oder false, wenn keine weiteren Datensätze vorliegen.

Mysql_fetch_array() ist eine erweiterte Version von mysql_fetch_row(). Der Datensatz wird in einem assoziativen Array abgelegt, in dem die Schlüssel den Namen der Datensatzfelder entsprechen.

Wenn zwei oder mehrere Felder des Ergebnisses den gleichen Feldnamen haben, dann wird der Wert des letzten Feldes im Array unter dem Feldnamen abgelegt. Um auch auf die anderen Felder mit dem gleichen Namen zugreifen zu können, müssen Sie den numerischen Index des Arrays verwenden oder einen Alias für das Feld erzeugen.

select t1.f1 as foo t2.f1 as bar from t1, t2

Zu betonen ist, dass der Gebrauch von mysql_fetch_array() NICHT signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bedeutet.

Das optionale zweite Argumente Ergebnistyp in mysql_fetch_array() ist eine Konstante und kann die folgenden Werte annehmen: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH. (Diese Eigenschaft wurde in PHP 3.0.7 hinzugefügt.)

Für weitere Details, siehe auch mysql_fetch_row().

Beispiel 1. Mysql_fetch_array()

<?php
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database","select * from table");
while ($row = mysql_fetch_array ($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
mysql_free_result ($result);
?>

Zurück | Anfang | Vor
mysql_error | Hoch | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4 )

mysql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis

Beschreibung

object mysql_fetch_field (int Ergebnis-Kennung [, int Feld-Offset])

Liefert ein Objekt mit Feldinformationen.

Mysql_fetch_field() kann gebraucht werden, um Feldinformationen über Felder in einem 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.

Des 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

Beispiel 1. Mysql_fetch_field()

<?php
mysql_connect ($host,$user,$password)
    or die ("Could not connect");
$result = mysql_db_query ("database", "select * from table")
    or die ("Query failed");
# get column metadata
$i = 0;
while ($i < mysql_num_fields ($result)) {
    echo "Information for column $i:<BR>\n";
    $meta = mysql_fetch_field ($result);
    if (!$meta) {
        echo "No information available<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 | Anfang | Vor
mysql_fetch_array | Hoch | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4 )

mysql_fetch_lengths -- Liefert die Länge eines jeden Feldes in einem Datensatz

Beschreibung

array mysql_fetch_lengths (int Ergebnis-Kennung)

Rückgabewert: Ein Array, das die Längen eines jeden Feldes in dem zuletzt geholten Datensatz enthält, oder false im Fehlerfall.

Mysql_fetch_lengths() liefert die Längen eines
jeden Feldes in dem mit mysql_fetch_row(),
mysql_fetch_array() oder
mysql_fetch_object() zuletzt geholten
Datensatzes, in einem Array.

Siehe auch: mysql_fetch_row().

Zurück | Anfang | Vor
mysql_fetch_field | Hoch | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4 )

mysql_fetch_object -- Liefert einen Datensatz als Objekt

Beschreibung

object mysql_fetch_object (int Ergebnis-Kennung [, int Ergebnistyp])

Liefert ein Objekt mit Eigenschaften, die den Felder des geholten Datensatz entsprechen, oder false when keine weiteren Datensätze vorhanden sind.

Mysql_fetch_object() ist ähnlich zu mysql_fetch_array(), mit einem Unterschied - ein Objekt wird zurück geliefert, anstatt eines Arrays. Indirekt bedeutet dies, das Sie die Felder nur mit ihren Feldnamen und nicht mir dem Offset ansprechen können. (Nummer sind ungültige Namen für Eigenschaften).

Das optionale zweite Argumente Ergebnistyp in mysql_fetch_array() ist eine Konstante und kann die folgenden Werte annehmen: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH.

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

<?php
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database", "select * from table");
while ($row = mysql_fetch_object ($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result ($result);
?>

Siehe auch: mysql_fetch_array() und mysql_fetch_row().

Zurück | Anfang | Vor
mysql_fetch_lengths | Hoch | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4 )

mysql_fetch_row -- Liefert einen Datensatz als indiziertes Array

Beschreibung

array mysql_fetch_row (int Ergebnis-Kennung)

Rückgabewert: Ein Array mit dem geholten Datensatz oder false wenn keine weiteren Datensätze verfügbar sind.

Mysql_fetch_row() liefert einen Datensatz aus dem Anfrageergebnis mit der übergebenen Kennung. Der Datensatz wird als Array geliefert. Jeder Feldwert ist als ein Element abgelegt.

Folgende Aufrufe von mysql_fetch_row() liefern die weiteren Datensätze des Anfrageergebnisses oder false, wenn keine weiteren Datensätze verfügbar sind.

Siehe auch: mysql_fetch_array(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths() und
mysql_result().

Zurück | Anfang | Vor
mysql_fetch_object | Hoch | mysql_field_name


mysql_field_name

(PHP 3, PHP 4 )

mysql_field_name -- Liefert den Namen eines Feldes in einem Anfrageergebnis

Beschreibung

string mysql_field_name (int Ergebnis-Kennung, int Feldindex)

Mysql_field_name() liefert den Namen eines Feldes in einem Anfrageergebnis. Argumente der Funktion ist die Kennung des Anfrageergebnisses und der Feldindex, z.B. mysql_field_name($result,2);

Dies liefert den Namen des zweiten Feldes im Anfrageergebnis.

Für Abwärtskompatibilität kann mysql_fieldname() verwendet werden.

Zurück | Anfang | Vor
mysql_fetch_row | Hoch | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4 )

mysql_field_seek -- Setzt den Feldzeiger auf ein bestimmtes Feld

Beschreibung

int mysql_field_seek (int Ergebnis-Kennung, int Feldoffset)

Setzt den Feldzeiger auf den angegeben Feldoffset. Wenn mit dem nächste Aufruf von mysql_fetch_field() keinen Feldoffset übergeben wird, wird das Feld auf den der Zeiger verweist zurückgeliefert.

Siehe auch: mysql_fetch_field().

Zurück | Anfang | Vor
mysql_field_name | Hoch | mysql_field_table


mysql_field_table

(PHP 3, PHP 4 )

mysql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält

Beschreibung

string mysql_field_table (int 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.

Zurück | Anfang | Vor
mysql_field_seek | Hoch | mysql_field_type


mysql_field_type

(PHP 3, PHP 4 )

mysql_field_type -- Liefert den Typ eines Feldes in einem Anfrageergebnis

Beschreibung

string mysql_field_type (int Ergebnis-Kennung, int Feldoffset)

Mysql_field_type() ist ähnlich zu mysql_field_name(). Die Argumente sind identisch, aber der Feldtyp wird zurückgeliefert. Dieser kann einer von "int", "real", "string", "blob", oder anderen sein, wie in der Dokumentation zu MySQL angegeben.

Beispiel 1. Mysql Field Types

<?php
mysql_connect ("localhost:3306");
mysql_select_db ("wisconsin");
$result = mysql_query ("SELECT * FROM onek");
$fields = mysql_num_fields ($result);
$rows   = mysql_num_rows ($result);
$i = 0;
$table = mysql_field_table ($result, $i);
echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>";
echo "The table has the following fields <BR>";
while ($i < $fields) {
    $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."<BR>";
    $i++;
}
mysql_close();
?>

Für Abwärtskompatibilität kann mysql_fieldtype() verwendet werden.

Zurück | Anfang | Vor
mysql_field_table | Hoch | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4 )

mysql_field_flags -- Liefert die Flags eines Feldes in einem Anfrageergebnis

Beschreibung

string mysql_field_flags (int Ergebnis-Kennung, int Feldoffset)

Mysql_field_flags() liefert die Flags des Feldes mit dem übergeben Offset. Die Flags werden als einzelne Worte pro Flag und 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.

Zurück | Anfang | Vor
mysql_field_type | Hoch | mysql_field_len


mysql_field_len

(PHP 3, PHP 4 )

mysql_field_len -- Liefert die Länge eines Feldes

Beschreibung

int mysql_field_len (int Ergebnis-Kennung, int Feldoffset)

Mysql_field_len() liefert die Länge des Feldes mit dem übergebenen Feldoffset. Für Abwärtskompatibilität kann mysql_fieldlen() verwendet werden.

Zurück | Anfang | Vor
mysql_field_flags | Hoch | mysql_free_result


mysql_free_result

(PHP 3, PHP 4 )

mysql_free_result -- Gibt den belegten Speicher wieder frei

Beschreibung

int mysql_free_result (int Ergebnis-Kennung)

Mysql_free_result() entfernt ein Ergebnis und gibt den belegten Speicher frei. Die Funktion muss nur dann aufgerufen werden, wenn der Speicherbedarf zur Laufzeit des PHP-Skripts zu hoch wird. Nach Ablauf des PHP-Skripts wird der Speicher ohnehin freigegeben.

Für Abwärtskompatibilität kann mysql_freeresult() verwendet werden.

Zurück | Anfang | Vor
mysql_field_len | Hoch | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4 )

mysql_insert_id -- Liefert die Kennung einer vorherigen INSERT-Operation

Beschreibung

int mysql_insert_id ([int Verbindungs-Kennung])

Mysql_insert_id() liefert die Kennung (ID), die bei der letzten INSERT-Operation für eine automatisch inkrementiertes Feld (AUTO_INCREMENTED) vergeben wurde. Wenn die Verbindungs-Kennung nicht angegeben wird, wird die aktuelle Verbindung verwendet.

Zurück | Anfang | Vor
mysql_free_result | Hoch | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4 )

mysql_list_fields -- Listet die Felder einer Tabelle auf

Beschreibung

int mysql_list_fields (string Datenbankname, string Tabellenname [, int Verbindungs-Kennung])

Mysql_list_fields() fordert Information über
eine Tabelle an.  Argumente sind der Datenbankname und der
Tabellenname.  the table name. Die zurückgelieferte
Ergebnis-Kennung kann von den Funktionen
mysql_field_flags(),
mysql_field_len(),
mysql_field_name() und
mysql_field_type() verwendet werden.

Die Erbebnis-Kennung ist ein positiver ganzzahliger Wert. Die Funktion liefert -1 im Fehlerfall. Eine mögliche Fehlermeldung wird in der Variablen $phperrmsg abgelegt, es sei denn die Funktion wurde als @mysql() aufgerufen. In diesem Fall wird die Fehlermeldung ausgegeben.

Für Abwärtskompatibilität kann mysql_listfields() verwendet werden.

Zurück | Anfang | Vor
mysql_insert_id | Hoch | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4 )

mysql_list_dbs -- Liefert eine Liste der verfügbaren Datenbanken auf dem Server

Beschreibung

int mysql_list_dbs ([int Verbindungs-Kennung])

Mysql_list_dbs() liefert die Kennung eines Ergebnisses, dass alle Datenbanken auf dem Datenbankserver enthält. Benutzen Sie die Funktion mysql_tablename(), um das Ergebnis zu durchlaufen.

Für Abwärtskompatibilität kann mysql_listdbs() verwendet werden.

Zurück | Anfang | Vor
mysql_list_fields | Hoch | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4 )

mysql_list_tables -- Liefert eine Liste der Tabellen in einer Datenbank

Beschreibung

int mysql_list_tables (string Datenbankname [, int Verbindungs-Kennung])

Mysql_list_tables() liefert eine Liste der Datenbank mit dem übergegebenen Namen, ähnlich wie die Funktion mysql_db_query() bei Datenbankanfragen. Die Funktion mysql_tablename() sollte genutzt werden, um die tatsächlichen Namen der Tabellen im Ergebnis zu erfragen.

Für Abwärtskompatibilität kann mysql_listtables() verwendet werden.

Zurück | Anfang | Vor
mysql_list_dbs | Hoch | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4 )

mysql_num_fields -- Liefert die Anzahl der Felder in einem Ergebnis

Beschreibung

int mysql_num_fields (int Ergebnis-Kennung)

Mysql_num_fields() liefert die Anzahl der Felder in einem Ergebnis.

Siehe auch: mysql_db_query(),
mysql_query(),
mysql_fetch_field() und
mysql_num_rows().

Für Abwärtskompatibilität kann mysql_numfields() verwendet werden.

Zurück | Anfang | Vor
mysql_list_tables | Hoch | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4 )

mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis

Beschreibung

int mysql_num_rows (int Ergebnis-Kennung)

Mysql_num_rows() liefert die Anzahl der Datensätze im Ergebnis.

Siehe auch: mysql_db_query(),
mysql_query() und
mysql_fetch_row().

Für Abwärtskompatibilität kann mysql_numrows() verwendet werden.

Zurück | Anfang | Vor
mysql_num_fields | Hoch | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4 )

mysql_pconnect -- Öffnete eine persistente Verbindung zum MySQL Server

Beschreibung

int mysql_pconnect ([string hostname[:port][:/path/to/socket] [, string Benutztername [, string Benutzerkennwort]]])

Rückgabewert: Eine gültige Verbindung-Kennung im Erfolgsfall oder false im Fehlerfall.

Mysql_pconnect() baut eine Verbindung zum MySQL Server auf. Alle Argumente sind optional, und wenn alle fehlen wird ('localhost', Benutzername des Benutzers dem der Server-Prozess gehört, leeres Kennwort) angenommen.

Der Parameter hostname kann zudem die Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem Socket z.B. ":/path/to/socket" für Zugriffe auf dem lokalen Rechner.

Anmerkung: Unterstützung für ":port" wurde in PHP 3.0B4 hinzugefügt.

Unterstützung für ":/path/to/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 (persistente) Verbindung zum gleichen Host und mit dem gleichen Benutzernamen und Kennwort zu finden. Wenn dies der Fall ist, wird die Verbindungskennung dieser Verbindung zurückgeliefert und keine neue Verbindung geöffnet.

Zweitens, die Verbindung zum SQL Server wird nicht mit Beendigung des PHP-Skripts geschlossen. Sie bleibt bestehen für einen möglichen, zukünftigen Verbindungsaufbau. (Mysql_close() schließt keine mit mysql_pconnect() geöffnete Verbindungen).

Dieser Verbindungstyp wird daher 'persistent' genannt.

Zurück | Anfang | Vor
mysql_num_rows | Hoch | mysql_query


mysql_query

(PHP 3, PHP 4 )

mysql_query -- Sendet eine SQL Anfrage zum Datenbankserver

Beschreibung

int mysql_query (string Anfrage [, int Verbindungs-Kennung])

Mysql_query() sendet eine Anfrage zu der zur Zeit aktiven Datenbank-Verbindung oder der Verbindung mit der übergegebenen Kennung. Wenn keine offene Verbindung besteht, wird versucht eine Verbindung aufzubauen, als ob mysql_connect() ohne Argumente aufgerufen wird.

Die Anfrage sollte nicht mit einem Semikolon enden.

Mysql_query() liefert TRUE (non-zero) oder FALSE, um anzuzeigen, ob die Anfrage erfolgreich war oder nicht. Wird im Erfolgsfall TRUE zurückgeliefert, dann sagt dies nichts über die Zahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich ist, 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()

<?php
$result = mysql_query ("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

Die folgende Anfrage ist semantisch falsch, wenn my_col ist kein Feld in der Tabelle my_tbl. 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 ("Invalid query");
?>

Mysql_query() schlägt ebenso fehl und liefert FALSE, wenn Sie keinen Zugriff auf die Tabelle(n) haben.

Angenommen eine Anfrage ist erfolgreich, dann können Sie mit mysql_affected_rows() herausfinden wieviele Datensätze beeinflusst wurden (für DELETE, INSERT, REPLACE, oder UPDATE Anweisungen). Bei SELECT Anweisungen, liefert mysql_query() eine Ergebnis-Kennung, die man mit mysql_result() weiter verarbeiten kann. Wenn das Ergebnis nicht mehr gebraucht wird, können die belegten Resourcen mit mysql_free_result() freigegeben werden.

Siehe auch: mysql_affected_rows(),
mysql_db_query(),
mysql_free_result(),
mysql_result(),
mysql_select_db() und
mysql_connect().

Zurück | Anfang | Vor
mysql_pconnect | Hoch | mysql_result


mysql_result

(PHP 3, PHP 4 )

mysql_result -- Liefert Ergebnis

Beschreibung

int mysql_result (int Ergebnis-Kennung, int Datensatz-Index [, mixed Feld])

Mysql_result() liefert den Inhalt eines Feldes aus einem Anfrageergebnis. Das Argument Feld kann der Feldname, der Feldoffset ein Bezeichner in der Form 'Feldname.Tabellenname' 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 die Funktionen, die auf ganze Datensätze zugreifen, in Betracht ziehen (siehe unten). Diese Funktionen sind sehr viel schneller als mysql_result(). Beachten Sie auch, dass die Angabe eines numerischen Offsets für das Feld sehr viel schneller ist als die übrigen möglichen Angaben.

Aufrufe von mysql_result() sollten nicht mit Aufruf anderen Funktion, die auch auf das Ergebnis zugreifen, verschachtelt werden.

Empfohlende, leistungsfähigere Alternativen:
mysql_fetch_row(),
mysql_fetch_array() und
mysql_fetch_object().

Zurück | Anfang | Vor
mysql_query | Hoch | mysql_select_db


mysql_select_db

(PHP 3, PHP 4 )

mysql_select_db -- Wählt eine Datenbank aus

Beschreibung

int mysql_select_db (string Datenbankname [, int Verbindungs-Kennung])

Rückgabewert: true im Erfolgsfall, false im Fehlerfall.

Mysql_select_db() setzt die aktuelle Datenbank auf dem Server zu dem die Verbindung mir der übergegebenen Verbindungs-Kennung besteht. Fehlt die Verbindungs-Kennung wird die aktive Verbindung genommen. Wenn auch diese nicht existiert, wird weiter versucht die Verbindung aufzubauen, wie dies mit mysql_connect() ohne Angabe von Argumenten geschehen würde.

Jeder weitere Aufruf von mysql_query() nutzt die aktive Verbindung.

Siehe auch: mysql_connect(),
mysql_pconnect() und
mysql_query().

Für Abwärtskompatibilität kann mysql_selectdb() verwendet werden.

Zurück | Anfang | Vor
mysql_result | Hoch | mysql_tablename


mysql_tablename

(PHP 3, PHP 4 )

mysql_tablename -- Liefert den Namen einer Tabelle

Beschreibung

string mysql_tablename (int Ergebnis-Kennung, int i)

Mysql_tablename() ermittelt aus einem Ergbenis, das von mysql_list_tables() geliefert wurde sowie einem Index i den Namen der Tabelle. Die Funktion mysql_num_rows() kann verwendet werden, um die Anzahl der Tabellen im Erbebnis zu ermitteln.

Beispiel 1. Mysql_tablename() Bespiel

<?php
mysql_connect ("localhost:3306");
$result = mysql_list_tables ("wisconsin");
$i = 0;
while ($i < mysql_num_rows ($result)) {
    $tb_names[$i] = mysql_tablename ($result, $i);
    echo $tb_names[$i] . "<BR>";
    $i++;
}
?>

Zurück | Anfang | Vor
mysql_select_db | Hoch | Netzwerk Funktionen


Netzwerk Funktionen

PHP Handbuch
Zurück Vor

XLVIII. 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
fsockopen — Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
gethostbyaddr — Ermittelt den Internet-Host-Namen (z.B. tux.meinsein.de) passend zur angegebenen IP-Adresse (z.B. 192.168.0.2)
gethostbyname — Ermittelt die IP-Adresse (z.B. 192.168.0.2) passend zum angegebenen Internet-Host-Namen (z.B. tux.meinsein.de)
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 | Anfang | Vor
mysql_tablename | Hoch | checkdnsrr


checkdnsrr

(PHP 3, PHP 4 )

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. tux.meinsein.de) sein.

Siehe auch getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel() und das named(8)
Manual.

Zurück | Anfang | Vor
Netzwerk Funktionen | Hoch | closelog


closelog

(PHP 3, PHP 4 )

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 | Anfang | Vor
checkdnsrr | Hoch | 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 | Anfang | Vor
closelog | Hoch | 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 | Anfang | Vor
debugger_off | Hoch | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4 )

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 | Anfang | Vor
debugger_on | Hoch | fsockopen


fsockopen

(PHP 3, PHP 4 )

fsockopen -- Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

Beschreibung:

int fsockopen (string [udp://]hostname, 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:

$fp = fsockopen ("www.php.net", 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 | Anfang | Vor
define_syslog_variables | Hoch | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4 )

gethostbyaddr -- Ermittelt den Internet-Host-Namen (z.B. tux.meinsein.de) passend zur angegebenen IP-Adresse (z.B. 192.168.0.2)

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 | Anfang | Vor
fsockopen | Hoch | gethostbyname


gethostbyname

(PHP 3, PHP 4 )

gethostbyname -- Ermittelt die IP-Adresse (z.B. 192.168.0.2) passend zum angegebenen Internet-Host-Namen (z.B. tux.meinsein.de)

Beschreibung:

string gethostbyname (string hostname)

Gibt die IP-Adresse passend zu hostname zurück.

Siehe auch: gethostbyaddr().

Zurück | Anfang | Vor
gethostbyaddr | Hoch | gethostbynamel


gethostbynamel

(PHP 3, PHP 4 )

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 | Anfang | Vor
gethostbyname | Hoch | getmxrr


getmxrr

(PHP 3, PHP 4 )

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 | Anfang | Vor
gethostbynamel | Hoch | getprotobyname


getprotobyname

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
getmxrr | Hoch | getprotobynumber


getprotobynumber

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
getprotobyname | Hoch | getservbyname


getservbyname

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
getprotobynumber | Hoch | getservbyport


getservbyport

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
getservbyname | Hoch | ip2long


ip2long

(PHP 4 >= 4.0RC1)

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:

<?
$ip = gethostbyname("www.php.net");
$out = "Die folgenden URLs sind gleich:<br>\n";
$out .= "http://www.php.net/, http://".$ip."/, and http://".ip2long($ip)."/<br>\n";
echo $out;
?>

Siehe auch: long2ip().

Zurück | Anfang | Vor
getservbyport | Hoch | long2ip


long2ip

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
ip2long | Hoch | openlog


openlog

(PHP 3, PHP 4 )

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 | Uhr-abhängige 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 | Anfang | Vor
long2ip | Hoch | pfsockopen


pfsockopen

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
openlog | Hoch | socket_get_status


socket_get_status

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
pfsockopen | Hoch | socket_set_blocking


socket_set_blocking

(PHP 4 >= 4.0b4)

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.

Zurück | Anfang | Vor
socket_get_status | Hoch | socket_set_timeout


socket_set_timeout

(PHP 4 >= 4.0b4)

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.php.net", 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;
}
?>

Diese Funktion wurde früher set_socket_timeout() genannt, dieser Name wird aber nicht abgelehnt.

Siehe auch: fsockopen() und fopen().

Zurück | Anfang | Vor
socket_set_blocking | Hoch | syslog


syslog

(PHP 3, PHP 4 )

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 | Anfang | Vor
socket_set_timeout | Hoch | ODBC Funktionen


ODBC Funktionen

PHP Handbuch
Zurück Vor

XLIX. ODBC Funktionen

Inhaltsverzeichnis
odbc_autocommit — Ändert das Autocommit-Verhalten
odbc_binmode — Die Behandlung von Binärdaten
odbc_close — Beendet eine ODBC-Verbindung
odbc_close_all — Beendet alle ODBC-Verbindungen
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_do — Ein Synonym für odbc_exec()
odbc_exec — Bereitet einen SQL-Befehl auf und führt ihn aus
odbc_execute — Führt ein vorbereiteten SQL-Befehl aus
odbc_fetch_into — Eine Ergebniszeile in ein Array stellen
odbc_fetch_row — Liefert eine Datenzeile zurück
odbc_field_name — Liefert die Spaltenbezeichnung
odbc_field_type — Liefert den Datentyp eines Feldes
odbc_field_len — Bestimmt die Länge eines Feldes
odbc_free_result — Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei
odbc_longreadlen — Steuert die Nutzung von LONG-Spalten
odbc_num_fields — Liefert die Anzahl der Ergebnisspalten
odbc_pconnect — Öffnet eine persistente Datenbankverbindung
odbc_prepare — Stellt einen SQL-Befehl zur Ausführung bereit
odbc_num_rows — Ergibt die Zeilenzahl des Abfrageergebnisses
odbc_result — Erlaubt den Zugriff auf die Ergebnisdaten
odbc_result_all — Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus
odbc_rollback — Hebt eine Transaktion wieder auf
odbc_setoption — Verändert die ODBC-Einstellungen
Zurück | Anfang | Vor
syslog | Hoch | odbc_autocommit


odbc_autocommit

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
ODBC Funktionen | Hoch | odbc_binmode


odbc_binmode

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_autocommit | Hoch | odbc_close


odbc_close

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_binmode | Hoch | odbc_close_all


odbc_close_all

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_close | Hoch | odbc_commit


odbc_commit

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_close_all | Hoch | odbc_connect


odbc_connect

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_commit | Hoch | odbc_cursor


odbc_cursor

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_connect | Hoch | odbc_do


odbc_do

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_cursor | Hoch | odbc_exec


odbc_exec

(PHP 3>= 3.0.6, PHP 4 )

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 muß 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 | Anfang | Vor
odbc_do | Hoch | odbc_execute


odbc_execute

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_exec | Hoch | odbc_fetch_into


odbc_fetch_into

(PHP 3>= 3.0.6, PHP 4 )

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 muß 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 | Anfang | Vor
odbc_execute | Hoch | odbc_fetch_row


odbc_fetch_row

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_fetch_into | Hoch | odbc_field_name


odbc_field_name

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_fetch_row | Hoch | odbc_field_type


odbc_field_type

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_field_name | Hoch | odbc_field_len


odbc_field_len

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_field_type | Hoch | odbc_free_result


odbc_free_result

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_field_len | Hoch | odbc_longreadlen


odbc_longreadlen

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_free_result | Hoch | odbc_num_fields


odbc_num_fields

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_longreadlen | Hoch | odbc_pconnect


odbc_pconnect

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_num_fields | Hoch | odbc_prepare


odbc_prepare

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_pconnect | Hoch | odbc_num_rows


odbc_num_rows

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_prepare | Hoch | odbc_result


odbc_result

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_num_rows | Hoch | odbc_result_all


odbc_result_all

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_result | Hoch | odbc_rollback


odbc_rollback

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_result_all | Hoch | odbc_setoption


odbc_setoption

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
odbc_rollback | Hoch | Oracle 8 functions


Oracle 8 functions

PHP Handbuch
Zurück Vor

L. Oracle 8 functions

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.

Inhaltsverzeichnis
OCIDefineByName — Definiert eine PHP Variable als Platzhalter für die Werte eines SELECTs
OCIBindByName — Bindet eine PHP-Variable an einen Oracle Platzhalter
OCILogon — Baut eine OCI-Verbindung auf
OCIPLogon — Logt sich persistent in die Oracle Datenbank ein und erzeugt eine neue Oracle Session.
OCINLogon — Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue Oracle Session.
OCILogOff — Schliesst eine Datenbankverbindung zu Oracle
OCIExecute — führt ein Statement aus.
OCICommit — Committet eine ausstehende Transaktion.
OCIRollback — Macht ausstehende Transaktionen rückgängig
OCINewDescriptor — Initialize a new empty descriptor LOB/FILE (LOB is default)
OCIRowCount — Gibt die Anzahl der betroffenen Zeilen zurück
OCINumCols — Gibt die Anzahl der Spalten in einem Statement zurück
OCIResult — Gibt einen Spaltenwert für das gefetchte Statement zurück
OCIFetch — Fetcht die nächste Ergebniszeile in den Ergebnispuffer
OCIFetchInto — Fetches the next row into result-array
OCIFetchStatement — Fetcht die Ergebnisse in ein Array
OCIColumnIsNULL — Testet eine Spalte ob deren Inhalt NULL ist
OCIColumnSize — Gibt die Grösse einer Spalte zurück
OCIServerVersion — Return a string containing server version information.
OCIStatementType — Gibt den Typ eine Statements zurück
OCINewCursor — return a new cursor (Statement-Handle) - use this to bind ref-cursors!
OCIFreeStatement — Gibt alle mit dem Statement verbundenen Ressourcen frei.
OCIFreeCursor — Gibt alle mit dem cursor verbundenen Ressourcen frei.
OCIColumnName — Liefert den Namen der Spalte zurück.
OCIColumnType — Liefert den Datentyp einer Spalte zurück.
OCIParse — Analysiert eine Abfrage und gibt eine Anweisung zurück.
OCIError — Gibt den letzten Fehler von stmt|conn|global zurück oder false, wenn kein Fehler aufgetreten ist.
OCIInternalDebug — Aktiviert oder deaktiviert die interne Debugausgabe. Die Voreinstellung ist deaktiviert.
Zurück | Anfang | Vor
odbc_setoption | Hoch | OCIDefineByName


OCIDefineByName

(PHP 3>= 3.0.7, PHP 4 )

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 GROSSBUSTABIG ausliefert. Daher erwartet OCIDefineByName() den Parameter Spaltenname grossbustabig. 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 | Anfang | Vor
Oracle 8 functions | Hoch | OCIBindByName


OCIBindByName

(PHP 3>= 3.0.4, PHP 4 )

OCIBindByName -- Bindet eine PHP-Variable an einen Oracle Platzhalter

Beschreibung

int OCIBindByName (int stmt, string Platzhaltername, mixed &Variable, intLä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 | Anfang | Vor
OCIDefineByName | Hoch | OCILogon


OCILogon

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIBindByName | Hoch | OCIPLogon


OCIPLogon

(PHP 3>= 3.0.8, PHP 4 )

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 | Anfang | Vor
OCILogon | Hoch | OCINLogon


OCINLogon

(PHP 3>= 3.0.8, PHP 4 )

OCINLogon -- Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue Oracle Session.

Description

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, das 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 | Anfang | Vor
OCIPLogon | Hoch | OCILogOff


OCILogOff

(PHP 3>= 3.0.4, PHP 4 )

OCILogOff -- Schliesst eine Datenbankverbindung zu Oracle

Beschreibung

int OCILogOff (int Verbindungskennung)

OCILogOff() schliesst die Verbindung zu Oracle.

Zurück | Anfang | Vor
OCINLogon | Hoch | OCIExecute


OCIExecute

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCILogOff | Hoch | OCICommit


OCICommit

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
OCIExecute | Hoch | OCIRollback


OCIRollback

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
OCICommit | Hoch | OCINewDescriptor


OCINewDescriptor

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
OCIRollback | Hoch | OCIRowCount


OCIRowCount

(PHP 3>= 3.0.7, PHP 4 )

OCIRowCount -- Gibt die Anzahl der betroffenen Zeilen zurück

Beschreibung

int OCIRowCount (int statement)

OCIRowCounts() 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 | Anfang | Vor
OCINewDescriptor | Hoch | OCINumCols


OCINumCols

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIRowCount | Hoch | OCIResult


OCIResult

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCINumCols | Hoch | OCIFetch


OCIFetch

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIResult | Hoch | OCIFetchInto


OCIFetchInto

(PHP 3>= 3.0.4, PHP 4 )

OCIFetchInto -- Fetches the next row into result-array

Beschreibung

int OCIFetchInto (int stmt, array &result [, int mode])

OCIFetchInto() fetches the next row (for SELECT statements) into the result array. OCIFetchInto() will overwrite the previous content of result. By default result will contain a one-based array of all columns that are not NULL.

The mode parameter allows you to change the default behaviour. You can specify more than one flag by simply addig them up (eg OCI_ASSOC+OCI_RETURN_NULLS). The known flags are:

OCI_ASSOC Return an associative array.
OCI_NUM Return an numbered array starting with one. (DEFAULT)
OCI_RETURN_NULLS Return empty columns.
OCI_RETURN_LOBS Return the value of a LOB instead of the desxriptor.

Zurück | Anfang | Vor
OCIFetch | Hoch | OCIFetchStatement


OCIFetchStatement

(PHP 3>= 3.0.8, PHP 4 )

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 | Anfang | Vor
OCIFetchInto | Hoch | OCIColumnIsNULL


OCIColumnIsNULL

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIFetchStatement | Hoch | OCIColumnSize


OCIColumnSize

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIColumnIsNULL | Hoch | OCIServerVersion


OCIServerVersion

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIColumnSize | Hoch | OCIStatementType


OCIStatementType

(PHP 3>= 3.0.5, PHP 4 )

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 | Anfang | Vor
OCIServerVersion | Hoch | OCINewCursor


OCINewCursor

(PHP 3>= 3.0.8, PHP 4 )

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 | Anfang | Vor
OCIStatementType | Hoch | OCIFreeStatement


OCIFreeStatement

(PHP 3>= 3.0.5, PHP 4 )

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 | Anfang | Vor
OCINewCursor | Hoch | OCIFreeCursor


OCIFreeCursor

(PHP 3>= 3.0.8, PHP 4 )

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 | Anfang | Vor
OCIFreeStatement | Hoch | OCIColumnName


OCIColumnName

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIFreeCursor | Hoch | OCIColumnType


OCIColumnType

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIColumnName | Hoch | OCIParse


OCIParse

(PHP 3>= 3.0.4, PHP 4 )

OCIParse -- Analysiert eine Abfrage und gibt eine Anweisung zurück.

Beschreibung

int OCIParse (int conn, strint 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 | Anfang | Vor
OCIColumnType | Hoch | OCIError


OCIError

(PHP 3>= 3.0.7, PHP 4 )

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 | Anfang | Vor
OCIParse | Hoch | OCIInternalDebug


OCIInternalDebug

(PHP 3>= 3.0.4, PHP 4 )

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 | Anfang | Vor
OCIError | Hoch | OpenSSL functions


OpenSSL functions

PHP Handbuch
Zurück Vor

LI. OpenSSL functions

This module uses the functions of OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. PHP-4.0.4pl1 requires OpenSSL >= 0.9.6, but PHP-4.0.5 and greater with also work with OpenSSL >= 0.9.5.

OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.

Inhaltsverzeichnis
openssl_free_key — Free key resource
openssl_get_privatekey — Prepare a PEM formatted private key for use
openssl_get_publickey — Extract public key from certificate and prepare it for use
openssl_open — Open sealed data
openssl_seal — Seal (encrypt) data
openssl_sign — Generate signature
openssl_verify — Verify signature
Zurück | Anfang | Vor
OCIInternalDebug | Hoch | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4)

openssl_free_key -- Free key resource

Description

void openssl_free_key (int key_identifier)

openssl_free_key() frees the key associated with the specified key_identifier from memory.

Zurück | Anfang | Vor
OpenSSL functions | Hoch | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4)

openssl_get_privatekey -- Prepare a PEM formatted private key for use

Description

int openssl_get_privatekey (string key [, string passphrase])

Returns a positive key identifier on success, or false on error.

openssl_get_privatekey() parses the PEM formatted private key specified by key and prepares it for use by other functions. The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Zurück | Anfang | Vor
openssl_free_key | Hoch | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4)

openssl_get_publickey -- Extract public key from certificate and prepare it for use

Description

int openssl_get_publickey (string certificate)

Returns a positive key identifier on success, or false on error.

openssl_get_publickey() extracts the public key from an X.509 certificate specified by certificate and prepares it for use by other functions.

Zurück | Anfang | Vor
openssl_get_privatekey | Hoch | openssl_open


openssl_open

(PHP 4 >= 4.0.4)

openssl_open -- Open sealed data

Description

bool openssl_open (string sealed_data, string open_data, string env_key, int priv_key_id)

Returns true on success, or false on error. If successful the opened data is returned in open_data.

openssl_open() opens (decrypts) sealed_data using the private key associtated with the key identifier priv_key_id and the envelope key env_key. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

Beispiel 1. openssl_open() example

// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$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);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid))
    echo "here is the opened data: ", $open;
else
    echo "failed to open data";

// free the private key from memory
openssl_free_key($pkeyid);

See also openssl_seal().

Zurück | Anfang | Vor
openssl_get_publickey | Hoch | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4)

openssl_seal -- Seal (encrypt) data

Description

int openssl_seal (string data, string sealed_data, array env_keys, array pub_key_ids)

Returns the length of the sealed data on success, or false on error. If successful the sealed data is returned in sealed_data, and the envelope keys in env_keys.

openssl_seal() seals (encrypts) data by using RC4 with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys. This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

Beispiel 1. openssl_seal() example

// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);

See also openssl_open().

Zurück | Anfang | Vor
openssl_open | Hoch | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4)

openssl_sign -- Generate signature

Description

bool openssl_sign (string data, string signature, int priv_key_id)

Returns true on success, or false on failure. If successful the signature is returned in signature.

openssl_sign() computes a signature for the specified data by using SHA1 for hashing followed by encryption using the private key associated with priv_key_id. Note that the data itself is not encrypted.

Beispiel 1. openssl_sign() example

// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$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);

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);

See also openssl_verify().

Zurück | Anfang | Vor
openssl_seal | Hoch | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4)

openssl_verify -- Verify signature

Description

int openssl_verify (string data, string signature, int pub_key_id)

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id. This must be the public key corresponding to the private key used for signing.

Beispiel 1. openssl_verify() example

// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
    echo "good";
elseif ($ok == 0)
    echo "bad";
else
    echo "ugly, error checking signature";

// free the key from memory
openssl_free_key($pubkeyid);

See also openssl_sign().

Zurück | Anfang | Vor
openssl_sign | Hoch | Oracle Funktionen


Oracle Funktionen

PHP Handbuch
Zurück Vor

LII. Oracle Funktionen

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 — Ruft einen Datensatz eines Cursors ab
Ora_Fetch_Into — Ruft einen Datensatz in ein angegebenes Ergebnisarray ab
Ora_GetColumn — Liefert die Daten eines abgerufenen Feldes
Ora_Logoff — Beendet eine Oracle-Verbindung
Ora_Logon — Baut eine Oracle-Verbindung auf
Ora_pLogon — Baut eine persistente 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
Ora_Rollback — Macht eine Transaktion rückgängig
Zurück | Anfang | Vor
openssl_verify | Hoch | Ora_Bind


Ora_Bind

(PHP 3, PHP 4 )

Ora_Bind -- Bindet eine PHP-Variable an einen Oracle-Parameter

Beschreibung

int ora_bind (int cursor, string PHP-Variablenname, string SQL-Parametername, int Länge [, int Typ])

Gibt nach erfolgter Bindung true, andernfalls false zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

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.

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.

<?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 | Anfang | Vor
Oracle Funktionen | Hoch | Ora_Close


Ora_Close

(PHP 3, PHP 4 )

Ora_Close -- Schließt einen Oracle-Cursor

Beschreibung

int ora_close (int Cursor)

Gibt nach erfolgtem Schließen true, andernfalls false zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion schließt den mittels ora_open() geöffneten Daten-Cursor.

Zurück | Anfang | Vor
Ora_Bind | Hoch | Ora_ColumnName


Ora_ColumnName

(PHP 3, PHP 4 )

Ora_ColumnName -- Liefert den Namen eines Oracle-Ergebnisfeldes

Beschreibung

string Ora_ColumnName (int Cursor, int Feld)

Gibt den Namen des Feldes Feld des Cursors Cursor zurück. Der zurückgegebene Name ist komplett in Großbuchstaben.

Zurück | Anfang | Vor
Ora_Close | Hoch | Ora_ColumnSize


Ora_ColumnSize

(PHP 3, PHP 4 )

Ora_ColumnSize -- Liefert die Größe eines Oracle-Ergebnisfeldes

Beschreibung

int Ora_ColumnSize (int Cursor, int Feld)

Gibt die Größe des Feldes Feld des Cursors Cursor zurück.

Zurück | Anfang | Vor
Ora_ColumnName | Hoch | Ora_ColumnType


Ora_ColumnType

(PHP 3, PHP 4 )

Ora_ColumnType -- Liefert den Typ eines Oracle-Ergebnisfeldes

Beschreibung

string Ora_ColumnType (int cursor, int column)

Gibt den Datentyp des Feldes Feld des Cursors Cursor zurück. Der zurückgegebene Typ ist einer der folgenden:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Zurück | Anfang | Vor
Ora_ColumnSize | Hoch | Ora_Commit


Ora_Commit

(PHP 3, PHP 4 )

Ora_Commit -- Bestätigt eine Oracle-Transaktion

Beschreibung

int ora_commit (int conn)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

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.

Zurück | Anfang | Vor
Ora_ColumnType | Hoch | Ora_CommitOff


Ora_CommitOff

(PHP 3, PHP 4 )

Ora_CommitOff -- Schaltet die automatische Bestätigung ab

Beschreibung

int ora_commitoff (int conn)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. 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() ab.

Zurück | Anfang | Vor
Ora_Commit | Hoch | Ora_CommitOn


Ora_CommitOn

(PHP 3, PHP 4 )

Ora_CommitOn -- Schaltet die automatische Bestätigung ein

Beschreibung

int ora_commiton (int conn)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. 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.

Zurück | Anfang | Vor
Ora_CommitOff | Hoch | Ora_Do


Ora_Do

(PHP 3, PHP 4 )

Ora_Do -- Kombiniert die Funktionen Ora_Parse, Ora_Exec und Ora_Fetch

Beschreibung

int ora_do (int conn, string Abfrage)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion 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.

Siehe auch: ora_parse(), ora_exec() und ora_fetch().

Zurück | Anfang | Vor
Ora_CommitOn | Hoch | Ora_Error


Ora_Error

(PHP 3, PHP 4 )

Ora_Error -- Liefert eine Oracle-Fehlermeldung

Beschreibung

string ora_error (int 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 | Anfang | Vor
Ora_Do | Hoch | Ora_ErrorCode


Ora_ErrorCode

(PHP 3, PHP 4 )

Ora_ErrorCode -- Liefert den Oracle-Fehlercode

Beschreibung

int Ora_ErrorCode (int 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 | Anfang | Vor
Ora_Error | Hoch | Ora_Exec


Ora_Exec

(PHP 3, PHP 4 )

Ora_Exec -- Führt eine analysierte Anweisung an einem Oracle-Cursor aus

Beschreibung

int ora_exec (int Cursor)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. 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 | Anfang | Vor
Ora_ErrorCode | Hoch | Ora_Fetch


Ora_Fetch

(PHP 3, PHP 4 )

Ora_Fetch -- Ruft einen Datensatz eines Cursors ab

Beschreibung

int ora_fetch (int Cursor)

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.

Diese Funktion ruft einen Datensatz des angegebenen Cursors ab.

Siehe auch: ora_parse(), ora_exec() und ora_do().

Zurück | Anfang | Vor
Ora_Exec | Hoch | Ora_Fetch_Into


Ora_Fetch_Into

(PHP 3, PHP 4 )

Ora_Fetch_Into -- Ruft einen Datensatz in ein angegebenes Ergebnisarray ab

Beschreibung

int ora_fetch_into (int Cursor, array Ergebnis [, int Flags])

Mit dieser Funktion können sie einen Datensatz in ein Array abrufen.

Beispiel 1. Oracle-Abruf in ein Array

<?php
array($ergebnisse);
ora_fetch_into($cursor, &$ergebnisse);
echo $ergebnisse[0];
echo $ergebnisse[1];
?>
Beachten Sie, dass Sie das Array als Verweis einbringen müssen.

Siehe auch: ora_parse(), ora_exec(), ora_fetch() und ora_do().

Zurück | Anfang | Vor
Ora_Fetch | Hoch | Ora_GetColumn


Ora_GetColumn

(PHP 3, PHP 4 )

Ora_GetColumn -- Liefert die Daten eines abgerufenen Feldes

Beschreibung

mixed ora_getcolumn (int Cursor, mixed Feld)

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").

Diese Funktion liefert die Daten eines Feld- oder Funktionsergebnisses.

Zurück | Anfang | Vor
Ora_Fetch_Into | Hoch | Ora_Logoff


Ora_Logoff

(PHP 3, PHP 4 )

Ora_Logoff -- Beendet eine Oracle-Verbindung

Beschreibung

int ora_logoff (int Verbindung)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. Einzelheiten über den Fehler bekommen Sie mit den Funktionen ora_error() und ora_errorcode().

Diese Funktion meldet den Benutzer ab und trennt die Verbindung zum Server.

See also ora_logon().

Zurück | Anfang | Vor
Ora_GetColumn | Hoch | Ora_Logon


Ora_Logon

(PHP 3, PHP 4 )

Ora_Logon -- Baut eine Oracle-Verbindung auf

Beschreibung

int 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:

$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 | Anfang | Vor
Ora_Logoff | Hoch | Ora_pLogon


Ora_pLogon

(PHP 3, PHP 4 )

Ora_pLogon -- Baut eine persistente Oracle-Verbindung auf

Beschreibung

int 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 | Anfang | Vor
Ora_Logon | Hoch | Ora_Numcols


Ora_Numcols

(PHP 3, PHP 4 )

Ora_Numcols -- Liefert die Anzahl der Felder

Beschreibung

int ora_numcols (int cursor_ind)

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 | Anfang | Vor
Ora_pLogon | Hoch | Ora_Numrows


Ora_Numrows

(PHP 3, PHP 4 )

Ora_Numrows -- Liefert die Anzahl der Datensätze

Beschreibung

int ora_numrows (int cursor_ind)

ora_numrows() gibt die Anzahl der Datensätze eines Ergebnisses zurück.

Zurück | Anfang | Vor
Ora_Numcols | Hoch | Ora_Open


Ora_Open

(PHP 3, PHP 4 )

Ora_Open -- Öffnet einen Oracle-Cursor

Beschreibung

int ora_open (int 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 | Anfang | Vor
Ora_Numrows | Hoch | Ora_Parse


Ora_Parse

(PHP 3, PHP 4 )

Ora_Parse -- Analysiert eine SQL-Anweisung

Beschreibung

int ora_parse (int Cursor_ind, string SQL-Anweisung, int aufschieben)

Gibt bei Erfolg 0 oder bei Auftreten eines Fehlers -1 zurück.

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 | Anfang | Vor
Ora_Open | Hoch | Ora_Rollback


Ora_Rollback

(PHP 3, PHP 4 )

Ora_Rollback -- Macht eine Transaktion rückgängig

Beschreibung

int ora_rollback (int Verbindung)

Gibt bei Erfolg true und bei Auftreten eines Fehlers false zurück. 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 | Anfang | Vor
Ora_Parse | Hoch | Ovrimos SQL functions


Ovrimos SQL functions

PHP Handbuch
Zurück Vor

LIII. Ovrimos SQL functions

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Ovrimos SQL Server is available at www.ovrimos.com. To enable ovrimos support in PHP just compile php with the '--with-ovrimos' parameter to configure script. You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

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 SQL Server.

Inhaltsverzeichnis
ovrimos_connect — Connect to the specified database
ovrimos_close — Closes the connection to ovrimos
ovrimos_close_all — Closes all the connections to ovrimos
ovrimos_longreadlen — Specifies how many bytes are to be retrieved from long datatypes
ovrimos_prepare — Prepares an SQL statement
ovrimos_execute — Executes a prepared SQL statement
ovrimos_cursor — Returns the name of the cursor
ovrimos_exec — Executes an SQL statement
ovrimos_fetch_into — Fetches a row from the result set
ovrimos_fetch_row — Fetches a row from the result set
ovrimos_result — Retrieves the output column
ovrimos_result_all — Prints the whole result set as an HTML table
ovrimos_num_rows — Returns the number of rows affected by update operations
ovrimos_num_fields — Returns the number of columns
ovrimos_field_name — Returns the output column name
ovrimos_field_type — Returns the (numeric) type of the output column
ovrimos_field_len — Returns the length of the output column
ovrimos_field_num — Returns the (1-based) index of the output column
ovrimos_free_result — Frees the specified result_id
ovrimos_commit — Commits the transaction
ovrimos_rollback — Rolls back the transaction
Zurück | Anfang | Vor
Ora_Rollback | Hoch | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3)

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 'port' 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 | Anfang | Vor
Ovrimos SQL functions | Hoch | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close (int connection)

ovrimos_close() is used to close the specified connection.

ovrimos_close() closes a connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Zurück | Anfang | Vor
ovrimos_connect | Hoch | ovrimos_close_all


ovrimos_close_all

(PHP 4 >= 4.0.3)

ovrimos_close_all -- Closes all the connections to ovrimos

Description

void ovrimos_close_all (void)

ovrimos_close_all() is used to close all the connections.

ovrimos_close_all() closes all connections to Ovrimos. This has the effect of rolling back uncommitted transactions.

Zurück | Anfang | Vor
ovrimos_close | Hoch | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

int ovrimos_longreadlen (int result_id, int length)

ovrimos_longreadlen() is used to specify how many bytes are to be retrieved from long datatypes.

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. Regardless of its taking a result_id as an argument, it currently sets this parameter for all result sets. Returns true.

Zurück | Anfang | Vor
ovrimos_close_all | Hoch | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare (int connection_id, string query)

ovrimos_prepare() is used to prepare an SQL statement.

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 | Anfang | Vor
ovrimos_longreadlen | Hoch | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3)

ovrimos_execute -- Executes a prepared SQL statement

Description

int ovrimos_execute (int result_id [, array parameters_array])

ovrimos_execute() is used to execute an SQL statement.

ovrimos_execute() executes a prepared statement. Returns true or 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 | Anfang | Vor
ovrimos_prepare | Hoch | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3)

ovrimos_cursor -- Returns the name of the cursor

Description

int ovrimos_cursor (int result_id)

ovrimos_cursor() is used to get the name of the cursor.

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Zurück | Anfang | Vor
ovrimos_execute | Hoch | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec (int connection_id, string query)

ovrimos_exec() is used to execute an SQL statement.

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 | Anfang | Vor
ovrimos_cursor | Hoch | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3)

ovrimos_fetch_into -- Fetches a row from the result set

Description

int ovrimos_fetch_into (int result_id, array result_array [, string how [, int rownumber]])

ovrimos_fetch_into() is used to fetch a row from the result set.

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. Returns true or 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 | Anfang | Vor
ovrimos_exec | Hoch | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3)

ovrimos_fetch_row -- Fetches a row from the result set

Description

int ovrimos_fetch_row (int result_id [, int how [, int row_number]])

ovrimos_fetch_row() is used to fetch a row from the result set.

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Returns true or 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 | Anfang | Vor
ovrimos_fetch_into | Hoch | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3)

ovrimos_result -- Retrieves the output column

Description

int ovrimos_result (int result_id, mixed field)

ovrimos_result() is used to retrieve the output column.

ovrimos_result() retrieves the output column specified by 'field', either as a string or as an 1-based index.

Zurück | Anfang | Vor
ovrimos_fetch_row | Hoch | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3)

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() is used to print an HTML table containing the whole result set.

ovrimos_result_all() prints the whole result set as an HTML table. Returns true or false.

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 | Anfang | Vor
ovrimos_result | Hoch | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows (int result_id)

ovrimos_num_rows() is used to get the number of rows affected by update operations.

ovrimos_num_rows() returns the number of rows affected by update operations.

Zurück | Anfang | Vor
ovrimos_result_all | Hoch | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields (int result_id)

ovrimos_num_fields() is used to get the number of columns.

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Zurück | Anfang | Vor
ovrimos_num_rows | Hoch | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3)

ovrimos_field_name -- Returns the output column name

Description

int ovrimos_field_name (int result_id, int field_number)

ovrimos_field_name() is used to get the output column name.

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Zurück | Anfang | Vor
ovrimos_num_fields | Hoch | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3)

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() is used to get the (numeric) type of the output column.

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified.

Zurück | Anfang | Vor
ovrimos_field_name | Hoch | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3)

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.

ovrimos_field_len() returns the length of the output column at the (1-based) index specified.

Zurück | Anfang | Vor
ovrimos_field_type | Hoch | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3)

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() is used to get the (1-based) index of the output column.

ovrimos_field_num() returns the (1-based) index of the output column specified by name, or false.

Zurück | Anfang | Vor
ovrimos_field_len | Hoch | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3)

ovrimos_free_result -- Frees the specified result_id

Description

int ovrimos_free_result (int result_id)

ovrimos_free_result() is used to free the result_id.

ovrimos_free_result() frees the specified result_id. Returns true.

Zurück | Anfang | Vor
ovrimos_field_num | Hoch | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3)

ovrimos_commit -- Commits the transaction

Description

int ovrimos_commit (int connection_id)

ovrimos_commit() is used to commit the transaction.

ovrimos_commit() commits the transaction.

Zurück | Anfang | Vor
ovrimos_free_result | Hoch | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3)

ovrimos_rollback -- Rolls back the transaction

Description

int ovrimos_rollback (int connection_id)

ovrimos_rollback() is used to roll back the transaction.

ovrimos_rollback() rolls back the transaction.

Zurück | Anfang | Vor
ovrimos_commit | Hoch | Output Control Functions


Output Control Functions

PHP Handbuch
Zurück Vor

LIV. Output Control Functions

The Output Control functions allow you to control when output is sent from the script. This can be useful in several different situations, especially if you need to send headers to the browser after your script has began outputing data. The Output Control functions do not affect headers sent using header() or setcookie(), only functions such as echo() and data between blocks of PHP code.

Beispiel 1. Output Control example

<?php

ob_start();
echo "Hello\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

In the above example, the output from echo() would be stored in the output buffer until ob_end_flush() was called. In the mean time, the call to setcookie() successfully stored a cookie without causing an error. (You can not normally send headers to the browser after data has already been sent.)

See also header() and setcookie().

Inhaltsverzeichnis
flush — Der Ausgabe-Puffer wird geleert und alle Zeichen ausgegeben
ob_start — Einschalten der Pufferung von Ausgaben
ob_get_contents — Gibt den Inhalt des Ausgabe-Puffers zurück
ob_end_flush — Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
ob_end_clean — Bereinigt (löscht) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
ob_implicit_flush — Schaltet die implizite Ausgabe ein bzw. aus
Zurück | Anfang | Vor
ovrimos_rollback | Hoch | flush


flush

(PHP 3, PHP 4 )

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 | Anfang | Vor
Output Control Functions | Hoch | ob_start


ob_start

(PHP 4 )

ob_start -- Einschalten der Pufferung von Ausgaben

Beschreibung:

voidob_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 | Anfang | Vor
flush | Hoch | ob_get_contents


ob_get_contents

(PHP 4 )

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 | Anfang | Vor
ob_start | Hoch | ob_end_flush


ob_end_flush

(PHP 4 )

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 | Anfang | Vor
ob_get_contents | Hoch | ob_end_clean


ob_end_clean

(PHP 4 )

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 | Anfang | Vor
ob_end_flush | Hoch | ob_implicit_flush


ob_implicit_flush

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
ob_end_clean | Hoch | PDF Funktionen


PDF Funktionen

PHP Handbuch
Zurück Vor

LV. 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/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 excellente 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 Module 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 test.pdf, welche nur aus einer Seite besteht. Auf der Seite befindet sich der Text "Times Roman outlined" in einem outlined, 30pt Zeichensatz. Der Text ist zudem unterstrichen.

Beispiel 1. Erstellung eines PDF Dokuments mit pdflib

<?php
$fp = fopen("test.pdf", "w");
$pdf = pdf_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
pdf_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
pdf_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php>finished</A>";
?>

Das PHP-Skript getpdf.php liefert nur das PDF-Dokument.

<?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>

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

<?php
$pdffilename = "clock.pdf";
$radius = 200;
$margin = 20;
$pagecount = 40;

$fp = fopen($pdffilename, "w");
$pdf = pdf_open($fp);
pdf_set_info_creator($pdf, "pdf_clock.php3");
pdf_set_info_author($pdf, "Uwe Steinmann");
pdf_set_info_title($pdf, "Analog Clock");

while($pagecount-- > 0) {
    pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));

    pdf_set_transition($pdf, 4);  /* wipe */
    pdf_set_duration($pdf, 0.5);

    pdf_translate($pdf, $radius + $margin, $radius + $margin);
    pdf_save($pdf);
    pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

    /* minute strokes */
    pdf_setlinewidth($pdf, 2.0);
    for ($alpha = 0; $alpha < 360; $alpha += 6) {
        pdf_rotate($pdf, 6.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin/3, 0.0);
        pdf_stroke($pdf);
    }

    pdf_restore($pdf);
    pdf_save($pdf);

    /* 5 minute strokes */
    pdf_setlinewidth($pdf, 3.0);
    for ($alpha = 0; $alpha < 360; $alpha += 30) {
        pdf_rotate($pdf, 30.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin, 0.0);
        pdf_stroke($pdf);
    }

    $ltime = getdate();

    /* draw hour hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius/2, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw minute hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius * 0.8, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw second hand */
    pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
    pdf_setlinewidth($pdf, 2);
    pdf_save($pdf);
    pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    pdf_moveto($pdf, -$radius/5, 0.0);
    pdf_lineto($pdf, $radius, 0.0);
    pdf_stroke($pdf);
    pdf_restore($pdf);

    /* draw little circle at center */
    pdf_circle($pdf, 0, 0, $radius/30);
    pdf_fill($pdf);

    pdf_restore($pdf);

    pdf_end_page($pdf);
}

$pdf = pdf_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php?filename=".$pdffilename.">finished</A>";
?>

Das PHP-Skript getpdf.php liefert wiederum nur das Dokument.

<?php
$fp = fopen($filename, "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>

Inhaltsverzeichnis
pdf_set_info — Setzt Info-Feld der Dokumenteninformation
pdf_open — Öffnet ein neues PDF-Dokument
pdf_close — Schließt ein PDF-Dokument
pdf_begin_page — Beginnt eine neue Seite
pdf_end_page — Beendet eine Seite
pdf_show — Schreibt einen Text an die aktuelle Position
pdf_show_boxed — Schreibt einen Text in eine Box
pdf_show_xy — Schreibt einen Text an die angegebene Position
pdf_set_font — Wählt einen Zeichensatz und dessen Größe aus
pdf_set_leading — Setzt den Abstand zwischen zwei Textzeilen
pdf_set_parameter — Setzt verschiedene Parameter
pdf_get_parameter — Liefert verschiedene Parameter
pdf_set_value — Setzt verschiedene numerische Werte
pdf_get_value — Liefert verschiedene numerische Werte
pdf_get_image_height — Liefert die Höhe eines Bildes
pdf_get_image_width — Liefert die Breite eines Bildes
pdf_set_text_rendering — Bestimmt wie der Text ausgegeben werden soll
pdf_set_horiz_scaling — Setzt die horizontale Skalierung bei der Textausgabe
pdf_set_text_rise — Setzt die Textverschiebung
pdf_set_text_matrix — Setzt die Text-Matrix
pdf_set_text_pos — Setzt die Textposition
pdf_set_char_spacing — Setzt den Abstand zwischen Zeichen
pdf_set_word_spacing — Setzt den Abstand zwischen Wörtern
pdf_skew — Schert das Koordinatensystem
pdf_continue_text — Schreibt den Text in die nächste Zeile
pdf_stringwidth — Liefert die benötigte Breite einer Zeichenkette mit dem aktuelle Zeichensatz
pdf_save — Sichert die aktuelle Umgebung
pdf_restore — Stellt eine zuvor gesicherte Umgebung wieder her
pdf_translate — Setzt den Ursprung des Koordinatenssystems
pdf_scale — Setzt den Skalierungsfaktor
pdf_rotate — Setzt die Rotation
pdf_setflat — Sets flatness
pdf_setlinejoin — Setzt die Verbindungsart von Linien
pdf_setlinecap — Setzt den Type der Linienenden
pdf_setmiterlimit — Sets miter limit
pdf_setlinewidth — Setzt die Linienbreite
pdf_setdash — Setzt das Muster für gestrichelte Linien
pdf_moveto — Setzt die aktuelle Position
pdf_curveto — Zeichnet eine Kurve
pdf_lineto — Zeichnet eine Linie
pdf_circle — Zeichnet einen Kreis
pdf_arc — Zeichnet einen Kreisbogen
pdf_rect — Zeichnet ein Rechteck
pdf_closepath — Schließt einen Pfad
pdf_stroke — Zeichnet eine Linie entlang eines Pfades
pdf_closepath_stroke — Schließt einen Pfad und zeichnet eine Linie entlang des Pfades
pdf_fill — Füllt den aktuellen Pfad
pdf_fill_stroke — Füllt den aktuellen Pfad und zeichnet eine Linie entlang des Pfades
pdf_closepath_fill_stroke — Schließt, füllt und zeichnet eine Linie entlang des Pfades
pdf_endpath — Beendet den aktuellen Pfad
pdf_clip — Begrenzt alle Zeichenoperation auf den aktuellen Pfad
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_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_add_outline — Fügt Lesemarke zur aktuellen Seite hinzu
pdf_set_transition — Setzt den Übergang zur nächsten Seite
pdf_set_duration — Setzt die Zeitdauer bis zur nächsten Seite
pdf_open_gif — Öffnet ein GIF-Bild
pdf_open_png — Öffnet ein PNG-Bild
pdf_open_image_file — Liest ein Bild aus einer Datei
pdf_open_memory_image — Liest ein Bild, das mit PHP erzeugt wurde
pdf_open_jpeg — Öffnet ein JPEG-Bild
pdf_open_tiff — Öffnet ein TIFF-Bild
pdf_close_image — Schließt ein Bild
pdf_place_image — Plaziert ein Bild auf der Seite
pdf_put_image — Speichert ein Bild im PDF-Dokument für späteren Gebrauch
pdf_execute_image — Plaziert ein gespeichertes Bild auf der Seite
pdf_add_annotation — Fügt eine Anmerkung hinzu
pdf_set_border_style — Setzt den Stil der Umrandung von Verweisen und Anmerkungen
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
Zurück | Anfang | Vor
ob_implicit_flush | Hoch | pdf_set_info


pdf_set_info

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
PDF Funktionen | Hoch | pdf_open


pdf_open

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_info | Hoch | pdf_close


pdf_close

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_open | Hoch | pdf_begin_page


pdf_begin_page

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_close | Hoch | pdf_end_page


pdf_end_page

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_begin_page | Hoch | pdf_show


pdf_show

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_end_page | Hoch | pdf_show_boxed


pdf_show_boxed

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
pdf_show | Hoch | pdf_show_xy


pdf_show_xy

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_show_boxed | Hoch | pdf_set_font


pdf_set_font

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_show_xy | Hoch | pdf_set_leading


pdf_set_leading

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_font | Hoch | pdf_set_parameter


pdf_set_parameter

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
pdf_set_leading | Hoch | pdf_get_parameter


pdf_get_parameter

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
pdf_set_parameter | Hoch | pdf_set_value


pdf_set_value

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
pdf_get_parameter | Hoch | pdf_get_value


pdf_get_value

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
pdf_set_value | Hoch | pdf_get_image_height


pdf_get_image_height

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_get_value | Hoch | pdf_get_image_width


pdf_get_image_width

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_get_image_height | Hoch | pdf_set_text_rendering


pdf_set_text_rendering

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_get_image_width | Hoch | pdf_set_horiz_scaling


pdf_set_horiz_scaling

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_text_rendering | Hoch | pdf_set_text_rise


pdf_set_text_rise

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_horiz_scaling | Hoch | pdf_set_text_matrix


pdf_set_text_matrix

(PHP 3>= 3.0.6, PHP 4 <= 4.0b4)

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 | Anfang | Vor
pdf_set_text_rise | Hoch | pdf_set_text_pos


pdf_set_text_pos

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_text_matrix | Hoch | pdf_set_char_spacing


pdf_set_char_spacing

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_text_pos | Hoch | pdf_set_word_spacing


pdf_set_word_spacing

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_char_spacing | Hoch | pdf_skew


pdf_skew

(PHP 4 >= 4.0RC1)

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 | Anfang | Vor
pdf_set_word_spacing | Hoch | pdf_continue_text


pdf_continue_text

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_skew | Hoch | pdf_stringwidth


pdf_stringwidth

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_continue_text | Hoch | pdf_save


pdf_save

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_stringwidth | Hoch | pdf_restore


pdf_restore

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_save | Hoch | pdf_translate


pdf_translate

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_restore | Hoch | pdf_scale


pdf_scale

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_translate | Hoch | pdf_rotate


pdf_rotate

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_scale | Hoch | pdf_setflat


pdf_setflat

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_rotate | Hoch | pdf_setlinejoin


pdf_setlinejoin

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setflat | Hoch | pdf_setlinecap


pdf_setlinecap

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setlinejoin | Hoch | pdf_setmiterlimit


pdf_setmiterlimit

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setlinecap | Hoch | pdf_setlinewidth


pdf_setlinewidth

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setmiterlimit | Hoch | pdf_setdash


pdf_setdash

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setlinewidth | Hoch | pdf_moveto


pdf_moveto

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setdash | Hoch | pdf_curveto


pdf_curveto

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_moveto | Hoch | pdf_lineto


pdf_lineto

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_curveto | Hoch | pdf_circle


pdf_circle

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_lineto | Hoch | pdf_arc


pdf_arc

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_circle | Hoch | pdf_rect


pdf_rect

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_arc | Hoch | pdf_closepath


pdf_closepath

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_rect | Hoch | pdf_stroke


pdf_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_closepath | Hoch | pdf_closepath_stroke


pdf_closepath_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_stroke | Hoch | pdf_fill


pdf_fill

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_closepath_stroke | Hoch | pdf_fill_stroke


pdf_fill_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_fill | Hoch | pdf_closepath_fill_stroke


pdf_closepath_fill_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_fill_stroke | Hoch | pdf_endpath


pdf_endpath

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_closepath_fill_stroke | Hoch | pdf_clip


pdf_clip

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_endpath | Hoch | pdf_setgray_fill


pdf_setgray_fill

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_clip | Hoch | pdf_setgray_stroke


pdf_setgray_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setgray_fill | Hoch | pdf_setgray


pdf_setgray

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setgray_stroke | Hoch | pdf_setrgbcolor_fill


pdf_setrgbcolor_fill

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setgray | Hoch | pdf_setrgbcolor_stroke


pdf_setrgbcolor_stroke

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setrgbcolor_fill | Hoch | pdf_setrgbcolor


pdf_setrgbcolor

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setrgbcolor_stroke | Hoch | pdf_add_outline


pdf_add_outline

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_setrgbcolor | Hoch | pdf_set_transition


pdf_set_transition

(PHP 3>= 3.0.6, PHP 4 )

pdf_set_transition -- Setzt den Übergang zur nächsten Seite

Beschreibung

void pdf_set_transition (int PDF-Dokument, int Transition)

Die Funktion pdf_set_transition() setzt die Art der Transition zur folgenden Seite. Die möglichen Werte des Parameters transition sind:

0 für keine,
1 für zwei, über den Bildschirm kriechende Linien, die die neue Seite entstehen lassen,
2 für mehrere, über den Bildschirm kriechende Linien, die die neue Seite entstehen lassen,
3 für einen Kasten der die Seite entstehen läßt,
4 für eine einzelne, über den Bildschirm kriechende Linie, die die neue Seite entstehen lassen,
5, wenn die Seite sich auflösen soll,
6 für eine Auflösungseffekt, der sich über die Seite bewegt,
7, wenn die Seite von der neuen Seite einfach ersetzt wird (voreingestellt).

Siehe auch pdf_set_duration().

Zurück | Anfang | Vor
pdf_add_outline | Hoch | pdf_set_duration


pdf_set_duration

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
pdf_set_transition | Hoch | pdf_open_gif


pdf_open_gif

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_set_duration | Hoch | pdf_open_png


pdf_open_png

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
pdf_open_gif | Hoch | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4 >= 4.0RC2)

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 | Anfang | Vor
pdf_open_png | Hoch | pdf_open_memory_image


pdf_open_memory_image

(PHP 3>= 3.0.10, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_open_image_file | Hoch | pdf_open_jpeg


pdf_open_jpeg

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_open_memory_image | Hoch | pdf_open_tiff


pdf_open_tiff

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
pdf_open_jpeg | Hoch | pdf_close_image


pdf_close_image

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_open_tiff | Hoch | pdf_place_image


pdf_place_image

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

pdf_place_image -- Plaziert 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() plaziert ein Bild auf der Seite an Position (x-Koor, x-Koor). Das Bild kann gleichzeitig skaliert werden.

Siehe auch pdf_put_image().

Zurück | Anfang | Vor
pdf_close_image | Hoch | pdf_put_image


pdf_put_image

(PHP 3>= 3.0.7, 4.0b2 - 4.0b4 only)

pdf_put_image -- Speichert ein Bild im PDF-Dokument für späteren Gebrauch

Beschreibung

void pdf_put_image (int PDF-Dokument, int image)

Die Funktion pdf_put_image() plaziert ein Bild in dem PDF-Dokument ohne es anzuzeigen. Das gespeichert Bild can durch die Funktion pdf_execute_image() so oft wie notwendig angezeigt werden. Dies ist sinnvoll, wenn das gleiche Bild mehrfach genutzt werden soll, um die Dateigröße des PDF-Dokuments klein zu halten. Der Gebrauch von pdf_put_image() und pdf_execute_image() ist insbesonder bei größeren Bilder zu empfehlen, wenn sie mehrfach verwerdet werden.

Anmerkung: Diese Funktion ist bedeutungslos seit der Version 2.01 von pdflib. Es wird lediglich eine Warnung ausgegeben.

Siehe auch pdf_put_image(),
         pdf_place_image(),
         pdf_execute_image().

Zurück | Anfang | Vor
pdf_place_image | Hoch | pdf_execute_image


pdf_execute_image

(PHP 3>= 3.0.7, 4.0b2 - 4.0b4 only)

pdf_execute_image -- Plaziert ein gespeichertes Bild auf der Seite

Beschreibung

void pdf_execute_image (int PDF-Dokument, int image, double x-Koor, double y-Koor, double Skalierung)

Die Funktion pdf_execute_image() zeigt ein Bild, das zuvor mit pdf_put_image() in dem PDF-Dokument abgelegt wurde.

Das Bild kann gleichzeitig skaliert werden. Ein Skalierungsfaktor von 1.0 zeigt das Bild in Originalgröße.

Anmerkung: Diese Funktion ist bedeutungslos seit der Version 2.01 von pdflib. Es wird lediglich eine Warnung ausgegeben.

Beispiel 1. Multiple show of an image

<?php
$im = ImageCreate(100, 100);
$col1 = ImageColorAllocate($im, 80, 45, 190);
ImageFill($im, 10, 10, $col1);
$pim = pdf_open_memory_image($pdf, $im);
pdf_put_image($pdf, $pim);
pdf_execute_image($pdf, $pim, 100, 100, 1);
pdf_execute_image($pdf, $pim, 200, 200, 2);
pdf_close_image($pdf, $pim);
?>

Zurück | Anfang | Vor
pdf_put_image | Hoch | pdf_add_annotation


pdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_execute_image | Hoch | pdf_set_border_style


pdf_set_border_style

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_add_annotation | Hoch | pdf_set_border_color


pdf_set_border_color

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

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 | Anfang | Vor
pdf_set_border_style | Hoch | pdf_set_border_dash


pdf_set_border_dash

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
pdf_set_border_color | Hoch | Verisign Payflow Pro functions


Verisign Payflow Pro functions

PHP Handbuch
Zurück Vor

LVI. Verisign Payflow Pro functions

This extension allows you to process credit cards and other financial transactions using Verisign Payment Services, formerly known as Signio (http://www.verisign.com/payment/).

These functions are only available if PHP has been compiled with the --with-pfpro[=DIR] option. You will require the appropriate SDK for your platform, which may be downloaded from within the manager interface once you have registered.

Once you have downloaded the SDK you should copy the files from the lib directory of the distribution. Copy the header file pfpro.h to /usr/local/include and the library file libpfpro.so to /usr/local/lib.

When using these functions, you may omit calls to pfpro_init() and pfpro_cleanup() as this extension will do so automatically if required. However the functions are still available in case you are processing a number of transactions and require fine control over the library. You may perform any number of transactions using pfpro_process() between the two.

These functions have been added in PHP 4.0.2.

Anmerkung: These functions only provide a link to Verisign Payment Services. Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Inhaltsverzeichnis
pfpro_init — Initialises the Payflow Pro library
pfpro_cleanup — Shuts down the Payflow Pro library
pfpro_process — Process a transaction with Payflow Pro
pfpro_process_raw — Process a raw transaction with Payflow Pro
pfpro_version — Returns the version of the Payflow Pro software
Zurück | Anfang | Vor
pdf_set_border_dash | Hoch | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2)

pfpro_init -- Initialises the Payflow Pro library

Description

void pfpro_init(void);

pfpro_init() is used to initialise the Payflow Pro library. You may omit this call, in which case this extension will automatically call pfpro_init() before the first transaction.

See also pfpro_cleanup().

Zurück | Anfang | Vor
Verisign Payflow Pro functions | Hoch | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2)

pfpro_cleanup -- Shuts down the Payflow Pro library

Description

void pfpro_cleanup(void);

pfpro_cleanup() is used to shutdown the Payflow Pro library cleanly. It should be called after you have processed any transactions and before the end of your script. However you may omit this call, in which case this extension will automatically call pfpro_cleanup() after your script terminates.

See also pfpro_init().

Zurück | Anfang | Vor
pfpro_init | Hoch | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2)

pfpro_process -- Process a transaction with Payflow Pro

Description

array pfpro_process (array parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Returns: An associative array containing the response

pfpro_process() processes a transaction with Payflow Pro. The first parameter is an associative array containing keys and values that will be encoded and passed to the processor.

The second parameter is optional and specifies the host to connect to. By default this is "test.signio.com", so you will certainly want to change this to "connect.signio.com" in order to process live transactions.

The third parameter specifies the port to connect on. It defaults to 443, the standard SSL port.

The fourth parameter specifies the timeout to be used, in seconds. This defaults to 30 seconds. Note that this timeout appears to only begin once a link to the processor has been established and so your script could potentially continue for a very long time in the event of DNS or network problems.

The fifth parameter, if required, specifies the hostname of your SSL proxy. The sixth parameter specifies the port to use.

The seventh and eighth parameters specify the logon identity and password to use on the proxy.

The function returns an associative array of the keys and values in the response.

Anmerkung: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Beispiel 1. Payflow Pro example

<?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 | Anfang | Vor
pfpro_cleanup | Hoch | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2)

pfpro_process_raw -- Process a raw transaction with Payflow Pro

Description

string pfpro_process_raw (string parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Returns: A string containing the response.

pfpro_process_raw() processes a raw transaction string with Payflow Pro. You should really use pfpro_process() instead, as the encoding rules of these transactions are non-standard.

The first parameter in this case is a string containing the raw transaction request. All other parameters are the same as with pfpro_process(). The return value is a string containing the raw response.

Anmerkung: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters and encoding rules. You would be well advised to use pfpro_process() instead.

Beispiel 1. Payflow Pro raw example

<?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 | Anfang | Vor
pfpro_process | Hoch | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2)

pfpro_version -- Returns the version of the Payflow Pro software

Description

string pfpro_version(void);

pfpro_version() returns the version string of the Payflow Pro library. At the time of writing, this was L211.

Zurück | Anfang | Vor
pfpro_process_raw | Hoch | PHP Optionen und Informationen


PHP Optionen und Informationen

PHP Handbuch
Zurück Vor

LVII. PHP Optionen und Informationen

Inhaltsverzeichnis
extension_loaded — Zeigt an, ob eine Bibliothek geladen wurde
getenv — Zeigt den Wert einer Umgebungsvariablen an
get_cfg_var — Zeigt den Wert einer Option der PHP-Konfiguration
get_current_user — Den Besitzer des aktuellen PHP-Scripts anzeigen.
get_magic_quotes_gpc — Zeigt die aktuelle Konfiguration von magic quotes gpc
get_magic_quotes_runtime — Zeigt die aktuelle Konfiguration von magic_quotes_runtime
getlastmod — Zeigt die Uhrzeit der letzten Änderung einer Seite
getmyinode — Gibt den Inode des aktuellen Skripts aus
getmypid — Zeigt die ID des PHP-Prozesses
getmyuid — Zeigt die UID des Besitzers eines PHP-Scripts
getrusage — Zeigt den aktuellen Ressourcenverbrauch an
phpinfo — Zeigt viele Informationen zu PHP
php_logo_guid — Die logo guid erhalten
php_sapi_name — Zeigt die Schnittstelle zwischen Webserver und PHP an
phpversion — Zeigt die aktuell installierte PHP-Version
putenv — Setzt den Wert einer Umgebungsvariablen.
set_magic_quotes_runtime — Setzt magic_quotes_runtime
set_time_limit — Setzt die maximale Ausführungszeit
zend_logo_guid — Zeigt die Zend guid
get_loaded_extensions — Stellt ein Array mit den Namen aller Module, die kompiliert und geladen sind, zur Verfügung
get_extension_funcs — Stellt ein Array mit den Namen einer Funktion eines Moduls zur Verfügung
get_required_files — Stellt ein Array mit den Namen der Dateien zur Verfügung, die über require_once() in einem Script aufgerufen wurden
get_included_files — Stellt ein Array der Dateinamen zur Verfügung, die mittels include_once() in ein Script geladen wurden
Zurück | Anfang | Vor
pfpro_version | Hoch | extension_loaded


extension_loaded

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

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 mal mit phpinfo().

Siehe auch phpinfo().

Anmerkung: Diese Funktion wurde mit Version 3.0.10 eingeführt.

Zurück | Anfang | Vor
PHP Optionen und Informationen | Hoch | getenv


getenv

(PHP 3, PHP 4 )

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 | Anfang | Vor
extension_loaded | Hoch | get_cfg_var


get_cfg_var

(PHP 3, PHP 4 )

get_cfg_var -- Zeigt den Wert einer Option der PHP-Konfiguration

Description

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 | Anfang | Vor
getenv | Hoch | get_current_user


get_current_user

(PHP 3, PHP 4 )

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 | Anfang | Vor
get_cfg_var | Hoch | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
get_current_user | Hoch | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
get_magic_quotes_gpc | Hoch | getlastmod


getlastmod

(PHP 3, PHP 4 )

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 | Anfang | Vor
get_magic_quotes_runtime | Hoch | getmyinode


getmyinode

(PHP 3, PHP 4 )

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 | Anfang | Vor
getlastmod | Hoch | getmypid


getmypid

(PHP 3, PHP 4 )

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 | Anfang | Vor
getmyinode | Hoch | getmyuid


getmyuid

(PHP 3, PHP 4 )

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 | Anfang | Vor
getmypid | Hoch | getrusage


getrusage

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 | Anfang | Vor
getmyuid | Hoch | phpinfo


phpinfo

(PHP 3, PHP 4 )

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 | Anfang | Vor
getrusage | Hoch | php_logo_guid


php_logo_guid

(PHP 4 >= 4.0b4)

php_logo_guid -- Die logo guid erhalten

Beschreibung

string php_logo_guid (void)

Anmerkung: Diese Funktion wurde mit Version PHP4 Beta 4 eingeführt.

Zurück | Anfang | Vor
phpinfo | Hoch | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
php_logo_guid | Hoch | phpversion


phpversion

(PHP 3, PHP 4 )

phpversion -- Zeigt die aktuell installierte PHP-Version

Beschreibung

string phpversion (void)

Zeigt die Version des installierten PHP-Parsers.

Beispiel 1. Phpversion() Beispiel

// Gibt z.B. 'Aktuelle PHP Version: 3.0rel-dev' aus
echo "Aktuelle PHP Version: ".phpversion();

Siehe auch phpinfo().

Zurück | Anfang | Vor
php_sapi_name | Hoch | putenv


putenv

(PHP 3, PHP 4 )

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 | Anfang | Vor
phpversion | Hoch | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
putenv | Hoch | set_time_limit


set_time_limit

(PHP 3, PHP 4 )

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 | Anfang | Vor
set_magic_quotes_runtime | Hoch | zend_logo_guid


zend_logo_guid

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
set_time_limit | Hoch | get_loaded_extensions


get_loaded_extensions

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
zend_logo_guid | Hoch | get_extension_funcs


get_extension_funcs

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
get_loaded_extensions | Hoch | get_required_files


get_required_files

(PHP 4 >= 4.0RC2)

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 vorraus, daß die Dateien, die mit required_once aufgerufen wurden, die Endung ".php" haben. Andere Endungen funktionieren nicht.

Siehe auch: require_once(),
   include_once(),
get_included_files()

Zurück | Anfang | Vor
get_extension_funcs | Hoch | get_included_files


get_included_files

(PHP 4 >= 4.0RC1)

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 vorraus, daß die Dateien, die mit include_onceaufgerufen wurden, die Endung ".php" haben. Andere Endungen funktionieren nicht.

Siehe auch: require_once(),
   include_once(),
get_required_files()

Zurück | Anfang | Vor
get_required_files | Hoch | POSIX Funktionen


POSIX Funktionen

PHP Handbuch
Zurück Vor

LVIII. POSIX Funktionen

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.

Inhaltsverzeichnis
posix_kill — Sendet einem Prozess ein Signal
posix_getpid — Liefert die aktuelle Prozesskennung
posix_getppid — Liefert die Prozesskennung des Elternprozesses
posix_getuid — Liefert die wirkliche Benutzer-ID des aktuellen Prozesses
posix_geteuid — Liefert die effektive Benutzer-ID des aktuellen Prozesses
posix_getgid — Liefert die wirkliche Gruppen-ID des aktuellen Prozesses
posix_getegid — Liefert die effektive Gruppen-ID des aktuellen Prozesses
posix_setuid — Setzt die effektive Benutzer-ID des aktuellen Prozesses
posix_setgid — Setzt die effektive Gruppen-ID des aktuellen Prozesses
posix_getgroups — Liefert die Gruppenliste des aktuellen Prozesses
posix_getlogin — Liefert den Benutzernamen des Eigentümers des aktuellen Prozesses
posix_getpgrp — Return the current process group identifier
posix_setsid — Make the current process a session leader
posix_setpgid — set process group id for job control
posix_getpgid — Get process group id for job control
posix_getsid — Get the current sid of the process
posix_uname — Get system name
posix_times — Get process times
posix_ctermid — Get path name of controlling terminal
posix_ttyname — Ermittelt den Namen des Terminal-Devices
posix_isatty — Ermittelt, ob ein Datei-Deskriptor ein interaktives Terminal ist
posix_getcwd — Pfadname des aktuellen Verzeichnisses
posix_mkfifo — Erzeugt eine "FIFO special"-Datei (named pipe)
posix_getgrnam — Liefert zu einem Gruppennamen Informationen über diese Gruppe
posix_getgrgid — Liefert zu einer Gruppen-ID Informationen über diese Gruppe
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
Zurück | Anfang | Vor
get_included_files | Hoch | posix_kill


posix_kill

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
POSIX Funktionen | Hoch | posix_getpid


posix_getpid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getpid -- Liefert die aktuelle Prozesskennung

Beschreibung

int posix_getpid (void )

Diese Funktion gibt die Prozesskennung des aktuellen Prozesses zurück.

Zurück | Anfang | Vor
posix_kill | Hoch | posix_getppid


posix_getppid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

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 | Anfang | Vor
posix_getpid | Hoch | posix_getuid


posix_getuid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getuid -- Liefert die wirkliche Benutzer-ID des aktuellen Prozesses

Beschreibung

int posix_getuid (void )

Diese Funktion gibt die numerische wirkliche 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 | Anfang | Vor
posix_getppid | Hoch | posix_geteuid


posix_geteuid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_geteuid -- Liefert die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

int posix_geteuid (void )

Diese Funktion gibt die numerische effektive 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 | Anfang | Vor
posix_getuid | Hoch | posix_getgid


posix_getgid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getgid -- Liefert die wirkliche Gruppen-ID des aktuellen Prozesses

Beschreibung

int posix_getgid (void )

Diese Funktion gibt die numerische wirkliche 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 | Anfang | Vor
posix_geteuid | Hoch | posix_getegid


posix_getegid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getegid -- Liefert die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

int posix_getegid (void )

Diese Funktion gibt die numerische effektive 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 | Anfang | Vor
posix_getgid | Hoch | posix_setuid


posix_setuid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_setuid -- Setzt die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

bool posix_setuid (int uid)

Diese Funktion setzt die wirkliche 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 | Anfang | Vor
posix_getegid | Hoch | posix_setgid


posix_setgid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_setgid -- Setzt die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

bool posix_setgid (int gid)

Diese Funktion setzt die wirkliche 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.

Siehe auch: posix_setuid().

Zurück | Anfang | Vor
posix_setuid | Hoch | posix_getgroups


posix_getgroups

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

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 | Anfang | Vor
posix_setgid | Hoch | posix_getlogin


posix_getlogin

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
posix_getgroups | Hoch | posix_getpgrp


posix_getpgrp

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getpgrp -- Return the current process group identifier

Beschreibung

int posix_getpgrp (void )

Return the process group identifier of the current process. See POSIX.1 and the getpgrp(2) manual page on your POSIX system for more information on process groups.

Zurück | Anfang | Vor
posix_getlogin | Hoch | posix_setsid


posix_setsid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_setsid -- Make the current process a session leader

Beschreibung

int posix_setsid (void )

Make the current process a session leader. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns the session id.

Zurück | Anfang | Vor
posix_getpgrp | Hoch | posix_setpgid


posix_setpgid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_setpgid -- set process group id for job control

Beschreibung

int posix_setpgid (int pid, int pgid)

Let the process pid join the process group pgid. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns TRUE on success, FALSE otherwise.

Zurück | Anfang | Vor
posix_setsid | Hoch | posix_getpgid


posix_getpgid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getpgid -- Get process group id for job control

Beschreibung

int posix_getpgid (int pid)

Returns the process group identifier of the process pid.

This is not a POSIX function, but is common on BSD and System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Zurück | Anfang | Vor
posix_setpgid | Hoch | posix_getsid


posix_getsid

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getsid -- Get the current sid of the process

Beschreibung

int posix_getsid (int pid)

Return the sid of the process pid. If pid is 0, the sid of the current process is returned.

This is not a POSIX function, but is common on System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Zurück | Anfang | Vor
posix_getpgid | Hoch | posix_uname


posix_uname

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_uname -- Get system name

Beschreibung

array posix_uname (void )

Returns a hash of strings with information about the system. The indices of the hash are

  • sysname - operating system name (e.g. Linux)

  • nodename - system name (e.g. valiant)

  • release - operating system release (e.g. 2.2.10)

  • version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - system architecture (e.g. i586)

  • domainname - DNS domainname (e.g. php.net)

domainname is a GNU extension and not part of POSIX.1, so this field is only available on GNU systems or when using the GNU libc.

Posix requires that you must not make any assumptions about the format of the values, e.g. you cannot rely on three digit version numbers or anything else returned by this function.

Zurück | Anfang | Vor
posix_getsid | Hoch | posix_times


posix_times

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_times -- Get process times

Beschreibung

array posix_times (void )

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are

  • ticks - the number of clock ticks that have elapsed since reboot.

  • utime - user time used by the current process.

  • stime - system time used by the current process.

  • cutime - user time used by current process and children.

  • cstime - system time used by current process and children.

Zurück | Anfang | Vor
posix_uname | Hoch | posix_ctermid


posix_ctermid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_ctermid -- Get path name of controlling terminal

Beschreibung

string posix_ctermid (void )

Muss noch geschrieben werden.

Zurück | Anfang | Vor
posix_times | Hoch | posix_ttyname


posix_ttyname

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_ttyname -- Ermittelt den Namen des Terminal-Devices

Beschreibung

string posix_ttyname (int fd)

Muss noch geschrieben werden.

Zurück | Anfang | Vor
posix_ctermid | Hoch | posix_isatty


posix_isatty

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_isatty -- Ermittelt, ob ein Datei-Deskriptor ein interaktives Terminal ist

Beschreibung

bool posix_isatty (int fd)

Muss noch geschrieben werden.

Zurück | Anfang | Vor
posix_ttyname | Hoch | posix_getcwd


posix_getcwd

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_getcwd -- Pfadname des aktuellen Verzeichnisses

Beschreibung

string posix_getcwd (void )

Sollte ASAP geschrieben werden.

Zurück | Anfang | Vor
posix_isatty | Hoch | posix_mkfifo


posix_mkfifo

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_mkfifo -- Erzeugt eine "FIFO special"-Datei (named pipe)

Beschreibung

bool posix_mkfifo (string Pfadname, int Modus)

Sollte ASAP geschrieben werden.

Zurück | Anfang | Vor
posix_getcwd | Hoch | posix_getgrnam


posix_getgrnam

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_getgrnam -- Liefert zu einem Gruppennamen Informationen über diese Gruppe

Beschreibung

array posix_getgrnam (string Gruppenname)

Muss noch geschrieben werden.

Zurück | Anfang | Vor
posix_mkfifo | Hoch | posix_getgrgid


posix_getgrgid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

posix_getgrgid -- Liefert zu einer Gruppen-ID Informationen über diese Gruppe

Beschreibung

array posix_getgrgid (int gid)

Muss noch geschrieben werden.

Zurück | Anfang | Vor
posix_getgrnam | Hoch | posix_getpwnam


posix_getpwnam

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
posix_getgrgid | Hoch | posix_getpwuid


posix_getpwuid

(PHP 3>= 3.0.13, PHP 4 >= 4.0b4)

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 | Anfang | Vor
posix_getpwnam | Hoch | posix_getrlimit


posix_getrlimit

(PHP 3>= 3.0.10, PHP 4 >= 4.0b4)

posix_getrlimit -- Liefert Informationen über Systemressourcen-Limits

Beschreibung

array posix_getrlimit (void )

Sollte ASAP geschrieben werden.

Zurück | Anfang | Vor
posix_getpwuid | Hoch | PostgreSQL Funktionen


PostgreSQL Funktionen

PHP Handbuch
Zurück Vor

LIX. PostgreSQL Funktionen

Postgres, ursprünglich entwickelt im UC Berkeley Computer Science Department, hat Pionierarbeit bei objektrelationalen Datenbankkonzepten geleistet, die jetzt Einzug in kommerzielle Datenbanken halten. Postgres bietet SQL92/SQL3 Sprachunterstützung, Transaktionen und erweiterbare Typenklassen. PostgreSQL ist eine Public Domain und Open Source Weiterentwicklung des ursprünglichen Berkeley-Codes.

PostgreSQL ist kostenlos. Die aktuelle Version ist erhältlich bei www.PostgreSQL.org.

Seit Version 6.3 (03/02/1998) benutzt PostgreSQL Unix Domain Sockets, siehe folgende Tabelle. 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 als auch über UNIX Domain Sockets eine Verbindung bereitzustellen.

Tabelle 1. 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 /path/to/file.php3 on line 20.
postmaster -i & | pg_connect("host=localhost dbname=MyDbName"); | OK

Eine Verbindung läßt sich auch mit folgendem Befehl herstellen: $conn = pg_Connect("host=myHost port=myPort tty=myTTY options=myOptions user=myUser password=myPassword dbname=myDB");

Die bisherige Syntax: $conn = pg_connect ("host", "port", "options", "tty", "dbname") ist veraltet und sollte nicht weiter verwendet werden.

Um die Large Object-Schnittstelle zu benutzen, ist es nötig, diese in einem Transaktionsblock einzuschließen. Ein Transaktionsblock beginnt mit einem begin und endet, wenn die Transaktion gültig war, mit commit oder end. Wenn die Transaktion fehlschlägt, sollte sie mit abort oder rollback geschlossen werden.

Beispiel 1. Grosse Objekte benutzen

<?php
    $database = pg_Connect ("", "", "", "", "jacarta");
    pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
    pg_exec ($database, "commit")
?>

Inhaltsverzeichnis
pg_Close — Schließt eine PostgreSQL-Verbindung
pg_cmdTuples — Gibt die Anzahl betroffener Tupel zurück
pg_Connect — Öffnet eine Verbindung
pg_DBname — Name der Datenbank
pg_end_copy — Syncronisation mit dem PostgreSQL backend
pg_ErrorMessage — Fehlermeldung
pg_Exec — Führt eine Abfrage aus
pg_Fetch_Array — Holt eine Datenbankreihe als Array
pg_Fetch_Object — Holt einen Datensatz als Objekt
pg_Fetch_Row — Holt einen Datensatz als numerisches Array
pg_FieldIsNull — Prüft, ob ein Feld NULL ist
pg_FieldName — Gibt den Namen eines Feldes zurück
pg_FieldNum — Liefert die Feldnummer eines Feldes
pg_FieldPrtLen — Liefert die angegebene Feldlänge
pg_FieldSize — Liefert die interne Speichergröße des benannten Felds
pg_FieldType — Liefert den Feldtyp der entsprechenden Feldnummer
pg_FreeResult — Gibt durch Ergebnisse belegten Speicher frei
pg_GetLastOid — Gibt die letzte Objektkennung aus
pg_Host — Gibt den Hostnamen zurück
pg_loclose — Schließt ein großes Objekt
pg_locreate — Erstellt ein großes Objekt
pg_loexport — export a large object to file
pg_loimport — import a large object from file
pg_loopen — Öffnet ein grosses Objekt
pg_loread — Liest ein grosses Objekt
pg_loreadall — Liest ein grosses Objekt vollständig
pg_lounlink — Ein grosses Objekt löschen
pg_lowrite — Schreibt in ein grosses Objekt
pg_NumFields — Gibt die Anzahl der Felder aus
pg_NumRows — Gibt die Anzahl der Zeilen aus
pg_Options — Liefert Verbindungsoptionen
pg_pConnect — Stellt eine persistente Datenbankverbindung her
pg_Port — Gibt die Portnummer aus
pg_put_line — Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL backend
pg_Result — Liefert Werte eines bezeichneten Ergebnisses
pg_set_client_encoding — Set the client encoding
pg_client_encoding — Get the client encoding
pg_trace — Trace a connection to PostgreSQL server
pg_tty — Gibt den tty-Namen aus
pg_untrace — Stop tracing a connection to PostgreSQL server
Zurück | Anfang | Vor
posix_getrlimit | Hoch | pg_Close


pg_Close

(PHP 3, PHP 4 )

pg_Close -- Schließt eine PostgreSQL-Verbindung

Beschreibung

bool pg_close (int connection)

Liefert FALSE zurück, wenn die Verbindung zur Datenbank keine gültige Kennung hat, ansonsten ist der Rückgabewert TRUE. Schließt eine PostgreSQL Datenbank-Verbindung mit der angegebenen Verbindungskennung.

Zurück | Anfang | Vor
PostgreSQL Funktionen | Hoch | pg_cmdTuples


pg_cmdTuples

(PHP 3, PHP 4 )

pg_cmdTuples -- Gibt die Anzahl betroffener Tupel zurück

Beschreibung

int pg_cmdtuples (int result_id)

pg_cmdTuples() gibt die Anzahl der Tupel (instances) einer INSERT, UPDATE oder DELETE Abfrage zurück. Die Funktion liefert 0 zurück, wenn die Abfrage keinen Tupel liefert.

Beispiel 1. pg_cmdtuples

<?php
$result = pg_exec($conn, "INSERT INTO verlag VALUES ('Autor')");
$cmdtuples = pg_cmdtuples($result);
echo $cmdtuples . " <- cmdtuples affected.";
?>

Zurück | Anfang | Vor
pg_Close | Hoch | pg_Connect


pg_Connect

(PHP 3, PHP 4 )

pg_Connect -- Öffnet eine Verbindung

Beschreibung

int pg_connect (string conn_string)

Öffnet eine Verbindung zu einer PostgreSQL-Datenbank und liefert bei Erfolg die Verbindungskennung zurück - oder FALSE, falls keine Verbindung hergestellt werden konnte. Alle Verbindungsdaten sind in dem String conn_string zusammengefasst.

Beispiel 1. Gebrauch von pg_connect()

<?php
$dbconn = pg_Connect ("dbname=mary");
//connect to a database named "mary"
$dbconn2 = pg_Connect ("host=localhost port=5432 dbname=mary");
//connect to a database named "mary" on "localhost" at port "5432"
$dbconn3 = pg_Connect ("user=lamb passwd=baaaa dbname=mary ");
//connect to a database named "mary" with a username and password
?>
Die von dieser Funktion zurückgelieferte Verbindungskennung wird von anderen PostgreSQL-Funktionen benötigt. Es ist auch möglich, mehrere Verbindungen gleichzeitig zu öffnen.

Die möglichen Argumente der Verbindungsdaten sind dbname port, host, tty, options, user, und password.

Die alte Syntax

int pg_connect (string host, string port, string options, string tty, string dbname)

sollte nicht mehr verwendet werden.

Siehe auch pg_pConnect().

Zurück | Anfang | Vor
pg_cmdTuples | Hoch | pg_DBname


pg_DBname

(PHP 3, PHP 4 )

pg_DBname -- Name der Datenbank

Beschreibung

string pg_dbname (int connection)

Gibt den Namen der Datenbank, deren Verbindungskennung übergeben wurde, aus - oder FALSE, wenn es sich um eine ungültige Kennung handelt.

Zurück | Anfang | Vor
pg_Connect | Hoch | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3)

pg_end_copy -- Syncronisation mit dem PostgreSQL backend

Beschreibung

bool pg_end_copy ([resource connection])

pg_end_copy() syncronisiert das PostgreSQL frontend mit dem backend nach einer Kopier-Operation. Die Funktion muss aufgerufen werden, damit das backend mit dem frontend synchronisiert bleibt. Liefert TRUE im Erfolgsfall, sonst FALSE.

Weiter Details und ein Beispiel finden Sie bei der Funktion pg_put_line().

Zurück | Anfang | Vor
pg_DBname | Hoch | pg_ErrorMessage


pg_ErrorMessage

(PHP 3, PHP 4 )

pg_ErrorMessage -- Fehlermeldung

Beschreibung

string pg_errormessage (int connection)

Liefert einen String, der die Fehlermeldung enthält oder FALSE bei Versagen. Details über den Fehler können aber eher nicht durch pg_errormessage bezogen werden. Wenn der Fehler bei der letzten Datenbank-Aktion, für die eine gültige Kennung existierte, auftrat, liefert die Funktion einen String mit der Fehlermeldung des Backend-Servers aus.

Zurück | Anfang | Vor
pg_end_copy | Hoch | pg_Exec


pg_Exec

(PHP 3, PHP 4 )

pg_Exec -- Führt eine Abfrage aus

Beschreibung

int pg_exec (int connection, string query)

Gibt eine Ergebniskennung zurück, wenn die Abfrage ausgeführt wurde oder FALSE bei gescheiterter Abfrage oder ungültiger Verbindungskennung. (Details über den Fehler kann man bei gültiger Verbindung durch den Gebrauch von pg_ErrorMessage() erhalten). Diese Funktion sendet ein SQL-Statement an die durch die Verbindungskennung spezifizierte PostgreSQL Datenbank. Die Verbindung muß eine gültige, durch pg_Connect() zurückgegebene Kennung haben. Der Rückgabewert dieser Funktion ist eine Kennung, die dazu verwendet kann, das Abfrageergebnis mit anderen PostgreSQL-Funktionen anzusprechen.

Anmerkung: PHP/FI lieferte als Rückgabewert 1, wenn die Abfrage kein Ergebnis liefern würde (beispielsweise INSERTs oder UPDATEs), und sogar einen Wert größer 1 bei SELECTs, die nichts zurückgaben. Dies trifft für PHP nicht mehr zu.

Zurück | Anfang | Vor
pg_ErrorMessage | Hoch | pg_Fetch_Array


pg_Fetch_Array

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Array -- Holt eine Datenbankreihe als Array

Beschreibung

array pg_fetch_array (int result, int row [, int result_type])

Rückgabewert: Ein Array, das mit der eingelesenen Reihe identisch ist, oder FALSE, wenn keine Reihe mehr gelesen werden kann.

pg_fetch_array() ist eine erweiterte Version von pg_fetch_row(). Zusätzlich zur Speicherung der Daten in einem aufgezählten Array speichert diese Funktion die Daten in assoziativen Indexen, indem es den Feldnamen als Schlüssel verwendet.

Das dritte optionale Argument result_type in pg_fetch_array() ist eine Konstante, die folgende Werte annehmen kann: PGSQL_ASSOC, PGSQL_NUM und PGSQL_BOTH.

Anmerkung: Result_type wurde in PHP 4.0 hinzugefügt.

Wichtig zu bemerken ist, daß pg_fetch_array() nicht wesentlich langsamer als pg_fetch_row() ist, obwohl eine umfassendere Funktion zur Verfügung gestellt wird.

Für weitere Einzelheiten siehe auch pg_fetch_row()

Beispiel 1. PostgreSQL fetch array

<?php
$conn = pg_pconnect("","","","","verlag");
if (!$conn) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}

$result = pg_Exec ($conn, "SELECT * FROM autoren");
if (!$result) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}

$arr = pg_fetch_array ($result, 0);
echo $arr[0] . " <- array\n";
$arr = pg_fetch_array ($result, 1);
echo $arr["autor"] . " <- array\n";
?>

Zurück | Anfang | Vor
pg_Exec | Hoch | pg_Fetch_Object


pg_Fetch_Object

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Object -- Holt einen Datensatz als Objekt

Beschreibung

object pg_fetch_object (int result, int row [, int result_type])

Rückgabewert: Ein Objekt, dessen Eigenschaften mit denen der Felder des erhaltenen Datensatzes übereinstimmen oder FALSE, wenn kein Datensatz mehr zurückgegeben wird.

pg_fetch_object() ist pg_fetch_array() ähnlich, mit einem Unterschíed: Statt eines Arrays wird ein Objekt zurückgegeben. Indirekt heißt das, dass man die Daten nur über die Feldnamen und nicht über ihre Offsets ansprechen kann (Zahlen sind nicht erlaubte Eigenschaftsnamen).

Das dritte, optionale Argument result_type in pg_fetch_object() ist eine Konstante und kann die folgenden Werte annehmen: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH.

Anmerkung: Result_type wurde in PHP 4.0 hinzugefügt

Von der Geschwindigkeit her ist die Funktion mit pg_fetch_array() identisch und fast so schnell wie pg_fetch_row() (Der Unterschied ist unwesentlich).

Siehe auch: pg_fetch_array() und pg_fetch_row().

Beispiel 1. Postgres fetch object

<?php
$database = "verlag";
$db_conn = pg_connect ("localhost", "5432", "", "", $database);
if (!$db_conn): ?>
    <H3>Konnte keine Datenbankverbindung zu
    <? echo $database ?> herstellen.</H3> <?
    exit;
endif;

$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0; // postgres needs a row counter other dbs might not

while ($data = pg_fetch_object ($qu, $row)):
    echo $data->autor." (";
    echo $data->jahr ."): ";
    echo $data->titel."<BR>";
    $row++;
endwhile; ?>

<PRE><?php
$fields[] = Array ("autor", "Autor");
$fields[] = Array ("jahr",  " Jahr");
$fields[] = Array ("titel", " Titel");
$row= 0; // postgres needs a row counter other dbs might not

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++;
endwhile;
echo "----------\n"; ?>
</PRE> <?php
pg_freeResult ($qu);
pg_close ($db_conn);
?>

Zurück | Anfang | Vor
pg_Fetch_Array | Hoch | pg_Fetch_Row


pg_Fetch_Row

(PHP 3>= 3.0.1, PHP 4 )

pg_Fetch_Row -- Holt einen Datensatz als numerisches Array

Beschreibung

array pg_fetch_row (int result, int row)

Rückgabewert: Ein Array, das mit dem gelesenen Datensatz übereinstimmt oder FALSE, wenn kein Datensatz mehr zurückgegeben wird.

pg_fetch_row() holt eine Datensatz aus dem duch die Kennung festgelegten Ergebnis. Der Datensatz wird als numerisches Array zurückgegeben. Jedes Ergebnisfeld wird in einem Array-Offset gespeichert, angefangen bei Offset 0.

Ein nachfolgender Aufruf von pg_fetch_row() wird den nächste Datensatz im Ergebnissatz ausgeben, oder FALSE, wenn keine auszugebender Datensatz mehr vorhanden ist.

Siehe auch: pg_fetch_array(), pg_fetch_object(), pg_result().

Beispiel 1. Postgres fetch row

<?php
 $conn = pg_pconnect("","","","","verlag");
if (!$conn) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}

$result = pg_Exec ($conn, "SELECT * FROM autoren");
if (!$result) {
    echo "Es ist ein Fehler aufgetreten.\n";
    exit;
}

$row = pg_fetch_row ($result, 0);
echo $row[0] . " <- row\n";

$row = pg_fetch_row ($result, 1);
echo $row[0] . " <- row\n";

$row = pg_fetch_row ($result, 2);
echo $row[1] . " <- row\n";
?>

Zurück | Anfang | Vor
pg_Fetch_Object | Hoch | pg_FieldIsNull


pg_FieldIsNull

(PHP 3, PHP 4 )

pg_FieldIsNull -- Prüft, ob ein Feld NULL ist

Beschreibung

int pg_fieldisnull (int result_id, int row, mixed field)

Prüft, ob ein Feld NULL ist oder nicht. Die Funktion liefert 0 zurück, wenn das Feld in der übergebenen Reihe nicht NULL ist und 1, wenn das Feld NULL ist. Das zu prüfende Feld kann als Nummer oder Feldname angegeben werden. Die Numerierung der Felder eines Datensatzes beginnt bei 0.

Zurück | Anfang | Vor
pg_Fetch_Row | Hoch | pg_FieldName


pg_FieldName

(PHP 3, PHP 4 )

pg_FieldName -- Gibt den Namen eines Feldes zurück

Beschreibung

string pg_fieldname (int result_id, int field_number)

pg_FieldName() gibt den Feldnamen des Feldes, das zu der übergebenen Feldnummer gehört, aus dem durch die Kennung zu definierenden Ergebnis aus. Die Feldnummerierung beginnt bei 0.

Zurück | Anfang | Vor
pg_FieldIsNull | Hoch | pg_FieldNum


pg_FieldNum

(PHP 3, PHP 4 )

pg_FieldNum -- Liefert die Feldnummer eines Feldes

Beschreibung

int pg_fieldnum (int result_id, string field_name)

pg_FieldNum() gibt die Nummer der Spalte aus, die zu dem übergebenen Feldnamen in dem duch die Kennung definierten Ergebnis gehört. Die Feldnumerierung beginnt bei 0. Diese Funktion gibt bei einem Fehler -1 aus.

Zurück | Anfang | Vor
pg_FieldName | Hoch | pg_FieldPrtLen


pg_FieldPrtLen

(PHP 3, PHP 4 )

pg_FieldPrtLen -- Liefert die angegebene Feldlänge

Beschreibung

int pg_fieldprtlen (int result_id, int row_number, string field_name)

pg_FieldPrtLen() gibt die aktuelle Länge (Anzahl der Zeichen) eines bestimmten Wertes in einem Postgres SQL-Ergebnis aus. Die Feldnumerierung beginnt bei 0. Die Funktion liefert bei einem Fehler -1 zurück.

Zurück | Anfang | Vor
pg_FieldNum | Hoch | pg_FieldSize


pg_FieldSize

(PHP 3, PHP 4 )

pg_FieldSize -- Liefert die interne Speichergröße des benannten Felds

Beschreibung

int pg_fieldsize (int result_id, int field_number)

pg_FieldSize() liefert die interne Speichergröße (in Bytes) des angegebenen Feldes in dem durch die Kennung definierten Ergebnis. Die Feldnumerierung beginnt bei 0. Eine Feldgröße von -1 deutet auf ein Feld mit variabler Länge hin. Diese Funktion gibt im Fehlerfall FALSE zurück.

Zurück | Anfang | Vor
pg_FieldPrtLen | Hoch | pg_FieldType


pg_FieldType

(PHP 3, PHP 4 )

pg_FieldType -- Liefert den Feldtyp der entsprechenden Feldnummer

Beschreibung

string pg_fieldtype (int result_id, int field_number)

pg_FieldType() liefert einen String, der den Feldtyp des bezeichneten Feldes aus einem definierten Ergebnis enthält. Die Feldnumerierung beginnt bei 0.

Zurück | Anfang | Vor
pg_FieldSize | Hoch | pg_FreeResult


pg_FreeResult

(PHP 3, PHP 4 )

pg_FreeResult -- Gibt durch Ergebnisse belegten Speicher frei

Beschreibung

int pg_freeresult (int result_id)

pg_FreeResult() braucht nur aufgerufen werden, wenn man befürchten muss, dass während des Skriptablaufes zu viel Speicher verbraucht wird. Der Speicher, 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_FreeResult() mit der Ergebniskennung als Argument aufrufen, und der entsprechende Speicher wird freigegeben.

Zurück | Anfang | Vor
pg_FieldType | Hoch | pg_GetLastOid


pg_GetLastOid

(PHP 3, PHP 4 )

pg_GetLastOid -- Gibt die letzte Objektkennung aus

Beschreibung

int pg_getlastoid (int result_id)

pg_GetLastOid() kann verwendet werden, um die einem eingefügten Tupel zugeordnete OID zu erhalten, wenn die Ergebniskennung vom letzten mit pg_Exec() ausgeführten Befehls benutzt wird und dieser ein SQL INSERT war. Die Funktion gibt ein positives Integer zurück, wenn eine gültige OID existiert. -1 wird zurückgegeben, wenn ein Fehler aufgetreten ist oder der letzte mit pg_Exec() abgesetzte Befehl kein INSERT war.

Zurück | Anfang | Vor
pg_FreeResult | Hoch | pg_Host


pg_Host

(PHP 3, PHP 4 )

pg_Host -- Gibt den Hostnamen zurück

Beschreibung

string pg_host (int connection_id)

pg_Host() liefert den Hostnamen des Datenbankservers, der durch die übergebene Kennung verbunden ist.

Zurück | Anfang | Vor
pg_GetLastOid | Hoch | pg_loclose


pg_loclose

(PHP 3, PHP 4 )

pg_loclose -- Schließt ein großes Objekt

Beschreibung

void pg_loclose (int fd)

pg_loclose() schließt ein Inversion Large Object. fd ist der Dateibeschreiber des mit pg_loopen() geöffneten Objekts.

Zurück | Anfang | Vor
pg_Host | Hoch | pg_locreate


pg_locreate

(PHP 3, PHP 4 )

pg_locreate -- Erstellt ein großes Objekt

Beschreibung

int pg_locreate (int conn)

pg_locreate() erstellt ein Inversion Large Object und liefert dessen OID zurück. conn bezeichnet eine gültige Datenbankverbindung. Die PostgresSQL Zugriffsmöglichkeiten INV_READ, INV_WRITE und INV_ARCHIVE werden nicht unterstützt, das Objekt wird stets mit Lese- und Schreibzugriff erstellt. INV_ARCHIVE wird seit Version 6.3 und höher von PostgresSQL selbst nicht mehr unterstützt.

Zurück | Anfang | Vor
pg_loclose | Hoch | pg_loexport


pg_loexport

(PHP 4 >= 4.0.1)

pg_loexport -- export a large object to file

Beschreibung

bool pg_loexport (int oid, int file [, int connection_id])

The oid argument specifies the object id of the large object to export and the filename argument specifies the pathname of the file. Returns FALSE if an error occurred, TRUE otherwise. Remember that handling large objects in PostgreSQL must happen inside a transaction.

Zurück | Anfang | Vor
pg_locreate | Hoch | pg_loimport


pg_loimport

(PHP 4 >= 4.0.1)

pg_loimport -- import a large object from file

Beschreibung

int pg_loimport (int file [, int connection_id])

The filename argument specifies the pathname of the file to be imported as a large object. Returns FALSE if an error occurred, object id of the just created large object otherwise. Remember that handling large objects in PostgreSQL must happen inside a transaction.

Zurück | Anfang | Vor
pg_loexport | Hoch | pg_loopen


pg_loopen

(PHP 3, PHP 4 )

pg_loopen -- Öffnet ein grosses Objekt

Beschreibung

int pg_loopen (int conn, int objoid, string mode)

pg_loopen() öffnet ein Inversion Large Object und liefert einen Dateibeschreiber des großen Objektes. Dieser beinhaltet Informationen über die Verbindung. Der Dateibeschreiber des großen Objektes sollte daher geschlossen werden, bevor die Verbindung beendet wird. objoid definiert die gültige OID eines grossen Objektes und mode kann "r", "w" oder "rw" sein.

Zurück | Anfang | Vor
pg_loimport | Hoch | pg_loread


pg_loread

(PHP 3, PHP 4 )

pg_loread -- Liest ein grosses Objekt

Beschreibung

string pg_loread (int fd, int len)

pg_loread() liest höchstens len Bytes eines grossen Objektes und gibt dies als String zurück. fd legt einen gültigen Dateibeschreiber fest und len definiert die maximal erlaubte Grösse des Segmentes des großen Objektes.

Zurück | Anfang | Vor
pg_loopen | Hoch | pg_loreadall


pg_loreadall

(PHP 3, PHP 4 )

pg_loreadall -- Liest ein grosses Objekt vollständig

Beschreibung

void pg_loreadall (int fd)

pg_loreadall() liest ein grosses Objekt und reicht es sofort nach dem Senden der entsprechenden Header an den Browser weiter. Wird hauptsächlich für Binärdaten wie Bilder oder Sound genutzt.

Zurück | Anfang | Vor
pg_loread | Hoch | pg_lounlink


pg_lounlink

(PHP 3, PHP 4 )

pg_lounlink -- Ein grosses Objekt löschen

Beschreibung

void pg_lounlink (int conn, int lobjid)

pg_lounlink() löscht das durch den lobjid Dateibeschreiber festgelegte grosse Objekt.

Zurück | Anfang | Vor
pg_loreadall | Hoch | pg_lowrite


pg_lowrite

(PHP 3, PHP 4 )

pg_lowrite -- Schreibt in ein grosses Objekt

Beschreibung

int pg_lowrite (int fd, string buf)

pg_lowrite() schreibt aus einer Variablen höchstens buf in ein grosses Objekt und liefert die Anzahl der tasächlich geschriebenen Bytes zurück, oder FALSE, wenn ein Fehler auftritt. fd ist der Dateibeschreiber des grossen Objektes aus pg_loopen().

Zurück | Anfang | Vor
pg_lounlink | Hoch | pg_NumFields


pg_NumFields

(PHP 3, PHP 4 )

pg_NumFields -- Gibt die Anzahl der Felder aus

Beschreibung

int pg_numfields (int result_id)

pg_NumFields() liefert die Anzahl der Felder (Spalten) eines PostgreSQL-Ergebnisses. Das Argument ist eine gültige Ergebniskennung, die von pg_Exec() zurückgegeben wurde. Diese Funktion gibt im Fehlerfall -1 aus.

Zurück | Anfang | Vor
pg_lowrite | Hoch | pg_NumRows


pg_NumRows

(PHP 3, PHP 4 )

pg_NumRows -- Gibt die Anzahl der Zeilen aus

Beschreibung

int pg_numrows (int result_id)

pg_NumRows() liefert die Anzahl der Zeilen in einem PostgreSQL-Ergebnis. Das Argument ist eine gültige Ergebniskennung, die von pg_Exec() zurückgegeben wurde. Diese Funktion gibt im Fehlerfall -1 aus.

Zurück | Anfang | Vor
pg_NumFields | Hoch | pg_Options


pg_Options

(PHP 3, PHP 4 )

pg_Options -- Liefert Verbindungsoptionen

Beschreibung

string pg_options (int connection_id)

pg_Options() liefert einen String, der die Optionen einer durch die Kennung bestimmtenn Verbindung enthält.

Zurück | Anfang | Vor
pg_NumRows | Hoch | pg_pConnect


pg_pConnect

(PHP 3, PHP 4 )

pg_pConnect -- Stellt eine persistente Datenbankverbindung her

Beschreibung

int pg_pconnect (string conn_string)

Öffnet eine persistente Verbindung zu einer PostgreSQL-Datenbank und liefert bei Erfolg die Verbindungskennung zurück - oder FALSE, falls keine Verbindung hergestellt werden konnte. Alle Verbindungsdaten sind in dem String conn_string zusammengefasst.

Die von dieser Funktion zurückgelieferte Verbindungskennung wird von anderen PostgreSQL-Funktionen benötigt. Es ist auch möglich, mehrere Verbindungen gleichzeitig zu öffnen.

Die möglichen Argumente der Verbindungsdaten sind dbname port, host, tty, options, user, und password.

Die alte Syntax

int pg_pconnect (string host, string port, string options, string tty, string dbname)

sollte nicht mehr verwendet werden.

Siehe auch pg_connect().

Zurück | Anfang | Vor
pg_Options | Hoch | pg_Port


pg_Port

(PHP 3, PHP 4 )

pg_Port -- Gibt die Portnummer aus

Beschreibung

int pg_port (int connection_id)

pg_Port() Gibt die Portnummer der durch die Kennung bezeichneten PostgresSQL-Verbindung aus.

Zurück | Anfang | Vor
pg_pConnect | Hoch | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3)

pg_put_line -- Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL backend

Beschreibung

bool pg_put_line ([resource connection_id, string Daten])

pg_put_line() sendet eine NULL-terminierte Zeichenkette an den PostgreSQL backend server. Nützliche ist die Funktion um bespielsweise Daten mit hoher Geschnwindigkeit in eine Datenbanktabelle einzufügen, wenn dieser Vorgang mit einer PostgreSQL copy-Operation begonnen wurde. Der abschließende NULL-character wird automatisch hinzugefügt. Liefert TRUE im Erfolgsfall, sonst FALSE.

Anmerkung: Beachten sie, dass die Anwendung explizit die beiden Zeichen "\." in der letzten Zeile senden muss, um damit dem backend das Datenende anzuzeigen.

Beispiel 1. Schnelles Einfügen von Daten in eine Tabelle

<?php
    $conn = pg_pconnect ("dbname=foo");
    pg_exec($conn, "create table bar (a int4, b char(16), d float8)");
    pg_exec($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);
?>

Siehe auch pg_end_copy().

Zurück | Anfang | Vor
pg_Port | Hoch | pg_Result


pg_Result

(PHP 3, PHP 4 )

pg_Result -- Liefert Werte eines bezeichneten Ergebnisses

Beschreibung

mixed pg_result (int result_id, int row_number, mixed fieldname)

pg_Result() liefert Werte aus einem durch pg_Exec() produzierten Ergebnis, dessen Kennung übergeben werden muß. row_number und fieldname geben an, welche Zelle der Ergebnistabelle zurückgegeben werden soll. Die Zeilennumerierung beginnt bei 0. Anstatt des Feldnamens kann auch der Feldindex als Zahl ohne Anführungszeichen angegeben werden. Der Feldindex beginnt bei 0.

PostgreSQL hat viele eingebaute Typen, und nur die grundlegenden werden hier direkt unterstützt. Alle Formen von Interger, Boolean und OID-Typen werden als Integer-Werte zurückgegeben, alle Formen von float und real als double. Alle anderen Formen, einschließlich der Arrays, werden als Strings in der durch den psql-Befehl bekannten PostgreSQL-Standardformatierung zurückgeliefert.

Zurück | Anfang | Vor
pg_put_line | Hoch | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3)

pg_set_client_encoding -- Set the client encoding

Description

int pg_set_client_encoding ([int connection, string encoding])

The function set the client encoding and return 0 if success or -1 if error.

encoding is the client encoding and can be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Anmerkung: This function requires PHP-4.0.2 or higher and PostgreSQL-7.0 or higher.

The function used to be called pg_setclientencoding().

See also pg_client_encoding().

Zurück | Anfang | Vor
pg_Result | Hoch | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3)

pg_client_encoding -- Get the client encoding

Description

string pg_client_encoding ([int connection])

The functions returns the client encoding as the string. The returned string should be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Anmerkung: This function requires PHP-4.0.2 or higher and PostgreSQL-7.0 or higher.

The function used to be called pg_clientencoding().

See also pg_set_client_encoding().

Zurück | Anfang | Vor
pg_set_client_encoding | Hoch | pg_trace


pg_trace

(PHP 4 >= 4.0.1)

pg_trace -- Trace a connection to PostgreSQL server

Beschreibung

bool pg_trace (string filename [, string mode [, int connection]])

Enables tracing of the PostgreSQL frontend/backend communication to a debugging file. To fully understand the results one needs to be familiar with the internals of PostgreSQL communication protocol. For those who are not, it can still be useful for tracing errors in queries sent to the server, you could do for example 'grep '^To backend' trace.log' and see what queriew actually were sent to the PostgreSQL server.

filename and mode are the same as in fopen() (mode defaults to 'w'), connection specifies the connection to trace and defaults to the last one opened.

Returns TRUE if filename could be opened for logging, FALSE otherwise.

Siehe auch fopen() and pg_untrace().

Zurück | Anfang | Vor
pg_client_encoding | Hoch | pg_tty


pg_tty

(PHP 3, PHP 4 )

pg_tty -- Gibt den tty-Namen aus

Beschreibung

string pg_tty (int connection_id)

pg_tty() gibt den tty-Namen aus, an den die serverseitigen Debuggermeldungen der durch die Kennung definierten Verbindung geschickt werden.

Zurück | Anfang | Vor
pg_trace | Hoch | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1)

pg_untrace -- Stop tracing a connection to PostgreSQL server

Beschreibung

bool pg_untrace ([int connection])

Stop tracing started by pg_trace(). connection specifies the connection that was traced and defaults to the last one opened.

Returns always TRUE.

Siehe auch pg_trace().

Zurück | Anfang | Vor
pg_tty | Hoch | Program Execution functions


Program Execution functions

PHP Handbuch
Zurück Vor

LX. Program Execution functions

Inhaltsverzeichnis
escapeshellarg — escape a string to be used as a shell argument
escapeshellcmd — escape shell metacharacters
exec — Execute an external program
passthru — Execute an external program and display raw output
system — Execute an external program and display output
Zurück | Anfang | Vor
pg_untrace | Hoch | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3)

escapeshellarg -- escape a string to be used as a shell argument

Description

string escapeshellarg (string arg)

EscapeShellArg() adds single quotes around a string and quotes/escapes any existing single quotes allowing you to pass a string directly to a shell function and having it be treated as a single safe argument. This function should be used to escape individual arguments to shell functions coming from user input. The shell functions include exec(), system() and the backtick operator. A standard use would be:

system("ls ".EscapeShellArg($dir))

See also exec(), popen(), system(), and the backtick operator.

Zurück | Anfang | Vor
Program Execution functions | Hoch | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4 )

escapeshellcmd -- escape shell metacharacters

Description

string escapeshellcmd (string command)

EscapeShellCmd() escapes any characters in a string that might be used to trick a shell command into executing arbitrary commands. This function should be used to make sure that any data coming from user input is escaped before this data is passed to the exec() or system() functions, or to the backtick operator. A standard use would be:

$e = EscapeShellCmd($userinput);
system("echo $e"); // here we don't care if $e has spaces
$f = EscapeShellCmd($filename);
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\""); // and here we do, so we use quotes

See also escapeshellarg(), exec(), popen(), system(), and the backtick operator.

Zurück | Anfang | Vor
escapeshellarg | Hoch | exec


exec

(PHP 3, PHP 4 )

exec -- Execute an external program

Description

string exec (string command [, string array [, int return_var]])

exec() executes the given command, however it does not output anything. It simply returns the last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the PassThru() function.

If the array argument is present, then the specified array will be filled with every line of output from the command. Note that if the array already contains some elements, exec() will append to the end of the array. If you do not want the function to append elements, call unset() on the array before passing it to exec().

If the return_var argument is present along with the array argument, then the return status of the executed command will be written to this variable.

Note that if you are going to allow data coming from user input to be passed to this function, then you should be using EscapeShellCmd() to make sure that users cannot trick the system into executing arbitrary commands.

Note also that if you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.

See also system(),
PassThru(), popen(),
EscapeShellCmd(), and the backtick operator.

Zurück | Anfang | Vor
escapeshellcmd | Hoch | passthru


passthru

(PHP 3, PHP 4 )

passthru -- Execute an external program and display raw output

Description

void passthru (string command [, int return_var])

The passthru() function is similar to the Exec() function in that it executes a command. If the return_var argument is present, the return status of the Unix command will be placed here. This function should be used in place of Exec() or System() when the output from the Unix command is binary data which needs to be passed directly back to the browser. A common use for this is to execute something like the pbmplus utilities that can output an image stream directly. By setting the content-type to image/gif and then calling a pbmplus program to output a gif, you can create PHP scripts that output images directly.

Note that if you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.

See also exec(), system(), popen(), EscapeShellCmd(), and the backtick operator.

Zurück | Anfang | Vor
exec | Hoch | system


system

(PHP 3, PHP 4 )

system -- Execute an external program and display output

Description

string system (string command [, int return_var])

System() is just like the C version of the function in that it executes the given command and outputs the result. If a variable is provided as the second argument, then the return status code of the executed command will be written to this variable.

Note, that if you are going to allow data coming from user input to be passed to this function, then you should be using the EscapeShellCmd() function to make sure that users cannot trick the system into executing arbitrary commands.

Note also that if you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.

The System() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.

Returns the last line of the command output on success, and false on failure.

If you need to execute a command and have all the data from the command passed directly back without any interference, use the PassThru() function.

See also exec(),
PassThru(), popen(),
EscapeShellCmd(), and the backtick operator.

Zurück | Anfang | Vor
passthru | Hoch | Pspell Functions


Pspell Functions

PHP Handbuch
Zurück Vor

LXI. Pspell Functions

These functions allow you to check the spelling of a word and offer suggestions.

You need the aspell and pspell libraries, available from http://aspell.sourceforge.net/ and http://pspell.sourceforge.net/ respectively, and add the --with-pspell[=dir] option when compiling php.

Inhaltsverzeichnis
pspell_add_to_personal — Add the word to a personal wordlist.
pspell_add_to_session — Add the word to the wordlist in the current session.
pspell_check — Check a word
pspell_clear_session — Clear the current session.
pspell_config_create — Create a config used to open a dictionary.
pspell_config_ignore — Ignore words less than N characters long.
pspell_config_mode — Change the mode number of suggestions returned.
pspell_config_personal — Set a file that contains personal wordlist.
pspell_config_repl — Set a file that contains replacement pairs.
pspell_config_runtogether — Consider run-together words as valid compounds.
pspell_config_save_repl — Determine whether to save a replacement pairs list along with the wordlist.
pspell_new — Load a new dictionary
pspell_new_config — Load a new dictionary with settings based on a given config
pspell_new_personal — Load a new dictionary with personal wordlist
pspell_save_wordlist — Save the personal wordlist to a file.
pspell_store_replacement — Store a replacement pair for a word
pspell_suggest — Suggest spellings of a word
Zurück | Anfang | Vor
system | Hoch | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2)

pspell_add_to_personal -- Add the word to a personal wordlist.

Description

int pspell_add_to_personal (int dictionary_link, string word)

Pspell_add_to_personal() adds a word to the personal wordlist. If you used pspell_new_config() with pspell_config_personal() to open the dictionary, you can save the wordlist later with pspell_save_wordlist(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Beispiel 1. Pspell_add_to_personal()

$pspell_config = pspell_config_create ("en");
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 | Anfang | Vor
Pspell Functions | Hoch | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2)

pspell_add_to_session -- Add the word to the wordlist in the current session.

Description

int pspell_add_to_session (int dictionary_link, string word)

Pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

Zurück | Anfang | Vor
pspell_add_to_personal | Hoch | pspell_check


pspell_check

(PHP 4 >= 4.0.2)

pspell_check -- Check a word

Description

boolean pspell_check (int dictionary_link, string word)

Pspell_check() checks the spelling of a word and returns true if the spelling is correct, false if not.

Beispiel 1. Pspell_check()

$pspell_link = pspell_new ("en");

if (pspell_check ($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

Zurück | Anfang | Vor
pspell_add_to_session | Hoch | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2)

pspell_clear_session -- Clear the current session.

Description

int pspell_clear_session (int dictionary_link)

Pspell_clear_session() clears the current session. The current wordlist becomes blank, and, for example, if you try to save it with pspell_save_wordlist(), nothing happens.

Beispiel 1. Pspell_add_to_personal()

$pspell_config = pspell_config_create ("en");
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" will not be saved

Zurück | Anfang | Vor
pspell_check | Hoch | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2)

pspell_config_create -- Create a config used to open a dictionary.

Description

int pspell_config_create (string language [, string spelling [, string jargon [, string encoding]]])

Pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediatelly followed by pspell_new_config() will produce the exact same result. However, after creating a new config, you can also use pspell_config_*() functions before calling pspell_new_config() to take advantage of some advanced functionality.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

For more information and examples, check out inline manual pspell website:http://pspell.sourceforge.net/.

Beispiel 1. Pspell_config_create()

$pspell_config = pspell_config_create ("en");
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);

Zurück | Anfang | Vor
pspell_clear_session | Hoch | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2)

pspell_config_ignore -- Ignore words less than N characters long.

Description

int pspell_config_ignore (int dictionary_link, int n)

Pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spellchecker. Words less then n characters will be skipped.

Beispiel 1. Pspell_config_ignore()

$pspell_config = pspell_config_create ("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");	//will not result in an error

Zurück | Anfang | Vor
pspell_config_create | Hoch | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2)

pspell_config_mode -- Change the mode number of suggestions returned.

Description

int pspell_config_mode (int dictionary_link, int mode)

Pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

Beispiel 1. Pspell_config_mode()

$pspell_config = pspell_config_create ("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");

Zurück | Anfang | Vor
pspell_config_ignore | Hoch | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2)

pspell_config_personal -- Set a file that contains personal wordlist.

Description

int pspell_config_personal (int dictionary_link, string file)

Pspell_config_personal() should be used on a config before calling pspell_new_config(). The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). If the file does not exist, it will be created. The file is also the file where pspell_save_wordlist() will save personal wordlist to. The file should be writable by whoever php runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Beispiel 1. Pspell_config_personal()

$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config ($pspell_config);
pspell_check ($pspell_link, "thecat");

Zurück | Anfang | Vor
pspell_config_mode | Hoch | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2)

pspell_config_repl -- Set a file that contains replacement pairs.

Description

int pspell_config_repl (int dictionary_link, string file)

Pspell_config_repl() should be used on a config before calling pspell_new_config(). The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs. The file should be writable by whoever php runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Beispiel 1. Pspell_config_repl()

$pspell_config = pspell_config_create ("en");
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, "thecat");

Zurück | Anfang | Vor
pspell_config_personal | Hoch | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2)

pspell_config_runtogether -- Consider run-together words as valid compounds.

Description

int pspell_config_runtogether (int dictionary_link, boolean flag)

Pspell_config_runtogether() should be used on a config before calling pspell_new_config(). This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Beispiel 1. Pspell_config_runtogether()

$pspell_config = pspell_config_create ("en");
pspell_config_runtogether ($pspell_config, true);
$pspell_link = pspell_new_config ($pspell_config);
pspell_check ($pspell_link, "thecat");

Zurück | Anfang | Vor
pspell_config_repl | Hoch | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2)

pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist.

Description

int pspell_config_save_repl (int dictionary_link, boolean flag)

Pspell_config_save_repl() should be used on a config before calling pspell_new_config(). It determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Zurück | Anfang | Vor
pspell_config_runtogether | Hoch | pspell_new


pspell_new

(PHP 4 >= 4.0.2)

pspell_new -- Load a new dictionary

Description

int pspell_new (string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

Pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://pspell.sourceforge.net/.

Beispiel 1. Pspell_new()

$pspell_link = pspell_new ("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));

Zurück | Anfang | Vor
pspell_config_save_repl | Hoch | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2)

pspell_new_config -- Load a new dictionary with settings based on a given config

Description

int pspell_new_config (int config)

Pspell_new_config() opens up a new dictionary with settings specified in a config, created with with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

The config parameter is the one returned by pspell_config_create() when the config was created.

Beispiel 1. Pspell_new_config()

$pspell_config = pspell_config_create ("en");
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);

Zurück | Anfang | Vor
pspell_new | Hoch | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2)

pspell_new_personal -- Load a new dictionary with personal wordlist

Description

int pspell_new_personal (string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

Pspell_new_personal() opens up a new dictionary with a personal wordlist and returns the dictionary link identifier for use in other pspell functions. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal (), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

The personal parameter specifies the file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, athough there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://pspell.sourceforge.net/.

Beispiel 1. Pspell_new_personal()

$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER));

Zurück | Anfang | Vor
pspell_new_config | Hoch | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2)

pspell_save_wordlist -- Save the personal wordlist to a file.

Description

int pspell_save_wordlist (int dictionary_link)

Pspell_save_wordlist() saves the personal wordlist from the current session. The dictionary has to be open with pspell_new_personal(), and the location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Beispiel 1. Pspell_add_to_personal()

$pspell_config = pspell_config_create ("en");
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 | Anfang | Vor
pspell_new_personal | Hoch | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2)

pspell_store_replacement -- Store a replacement pair for a word

Description

int pspell_store_replacement (int dictionary_link, string misspelled, string correct)

Pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Beispiel 1. Pspell_store_replacement()

$pspell_config = pspell_config_create ("en");
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, $misspelled, $correct);
pspell_save_wordlist ($pspell_link);

Zurück | Anfang | Vor
pspell_save_wordlist | Hoch | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2)

pspell_suggest -- Suggest spellings of a word

Description

array pspell_suggest (int dictionary_link, string word)

Pspell_suggest() returns an array of possible spellings for the given word.

Beispiel 1. Pspell_suggest()

$pspell_link = pspell_new ("en");

if (!pspell_check ($pspell_link, "testt")) {
    $suggestions = pspell_suggest ($pspell_link, "testt");

    for ($i=0; $i < count ($suggestions); $i++) {
        echo "Possible spelling: " . $suggestions[$i] . "<br>";
    }
}

Zurück | Anfang | Vor
pspell_store_replacement | Hoch | GNU Readline


GNU Readline

PHP Handbuch
Zurück Vor

LXII. GNU Readline

The readline() functions implement an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. 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 to be run from a shell.

The home page of the GNU Readline project is http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. It's maintained by Chet Ramey, who's also the author of Bash.

Inhaltsverzeichnis
readline — Reads a line
readline_add_history — Adds a line to the history
readline_clear_history — Clears the history
readline_completion_function — Registers a completion function
readline_info — Gets/sets various internal readline variables
readline_list_history — Lists the history
readline_read_history — Reads the history
readline_write_history — Writes the history
Zurück | Anfang | Vor
pspell_suggest | Hoch | readline


readline

(PHP 4 >= 4.0b4)

readline -- Reads a line

Description

string readline ([string prompt])

This function returns a single string from the user. You may specify a string with which to prompt the user. The line returned has the ending newline removed. You must add this line to the history yourself using readline_add_history().

Beispiel 1. Readline()

//get 3 commands from user
for ($i=0; $i < 3; $i++) {
        $line = readline ("Command: ");
        readline_add_history ($line);
}

//dump history
print_r (readline_list_history());

//dump variables
print_r (readline_info());

Zurück | Anfang | Vor
GNU Readline | Hoch | readline_add_history


readline_add_history

(PHP 4 >= 4.0b4)

readline_add_history -- Adds a line to the history

Description

void readline_add_history (string line)

This function adds a line to the command line history.

Zurück | Anfang | Vor
readline | Hoch | readline_clear_history


readline_clear_history

(PHP 4 >= 4.0b4)

readline_clear_history -- Clears the history

Description

boolean readline_clear_history (void )

This function clears the entire command line history.

Zurück | Anfang | Vor
readline_add_history | Hoch | readline_completion_function


readline_completion_function

(PHP 4 >= 4.0b4)

readline_completion_function -- Registers a completion function

Description

boolean readline_completion_function (string line)

This function registers a completion function. You must supply the name of an existing function which accepts a partial command line and returns an array of possible matches. This is the same kind of functionality you'd get if you hit your tab key while using Bash.

Zurück | Anfang | Vor
readline_clear_history | Hoch | readline_info


readline_info

(PHP 4 >= 4.0b4)

readline_info -- Gets/sets various internal readline variables

Description

mixed readline_info ([string varname [, string newvalue]])

If called with no parameters, this function returns an array of values for all the setting readline uses. The elements will be indexed by the following values: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, and terminal_name.

If called with one parameter, the value of that setting is returned. If called with two parameters, the setting will be changed to the given value.

Zurück | Anfang | Vor
readline_completion_function | Hoch | readline_list_history


readline_list_history

(PHP 4 >= 4.0b4)

readline_list_history -- Lists the history

Description

array readline_list_history (void )

This function returns an array of the entire command line history. The elements are indexed by integers starting at zero.

Zurück | Anfang | Vor
readline_info | Hoch | readline_read_history


readline_read_history

(PHP 4 >= 4.0b4)

readline_read_history -- Reads the history

Description

boolean readline_read_history (string filename)

This function reads a command history from a file.

Zurück | Anfang | Vor
readline_list_history | Hoch | readline_write_history


readline_write_history

(PHP 4 >= 4.0b4)

readline_write_history -- Writes the history

Description

boolean readline_write_history (string filename)

This function writes the command history to a file.

Zurück | Anfang | Vor
readline_read_history | Hoch | GNU Recode functions


GNU Recode functions

PHP Handbuch
Zurück Vor

LXIII. GNU Recode functions

This module contains an interface to the GNU Recode library, version 3.5. To be able to use the functions defined in this module you must compile you PHP interpreter using the --with-recode option. In order to do so, you must have GNU Recode 3.5 or higher installed on your system.

The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most RFC 1345 character sets are supported.

Inhaltsverzeichnis
recode_string — Recode a string according to a recode request
recode — Recode a string according to a recode request
recode_file — Recode from file to file according to recode request
Zurück | Anfang | Vor
readline_write_history | Hoch | recode_string


recode_string

(PHP 3>= 3.0.13, PHP 4 >= 4.0RC1)

recode_string -- Recode a string according to a recode request

Description

string recode_string (string request, string string)

Recode the string string according to the recode request request. Returns the recoded string or FALSE, if unable to perform the recode request.

A simple recode request may be "lat1..iso646-de". See also the GNU Recode documentation of your installation for detailed instructions about recode requests.

Beispiel 1. Basic recode_string() example:

print recode_string ("us..flat", "The following character has a diacritical mark: &aacute;");

Zurück | Anfang | Vor
GNU Recode functions | Hoch | recode


recode

(PHP 4 >= 4.0RC1)

recode -- Recode a string according to a recode request

Description

string recode (string request, string string)

Anmerkung: This is an alias for recode_string(). It has been added in PHP 4.

Zurück | Anfang | Vor
recode_string | Hoch | recode_file


recode_file

(PHP 3>= 3.0.13, PHP 4 >= 4.0RC1)

recode_file -- Recode from file to file according to recode request

Description

boolean recode_file (string request, resource input, resource output)

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request. Returns FALSE, if unable to comply, TRUE otherwise.

This function does not currently process filehandles referencing remote files (URLs). Both filehandles must refer to local files.

Beispiel 1. Basic recode_file() example

$input = fopen ('input.txt', 'r');
$output = fopen ('output.txt', 'w');
recode_file ("us..flat", $input, $output);

Zurück | Anfang | Vor
recode | Hoch | Regular Expression Functions (Perl-Compatible)


Regular Expression Functions (Perl-Compatible)

PHP Handbuch
Zurück Vor

LXIV. Regular Expression Functions (Perl-Compatible)

The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters.

The ending delimiter may be followed by various modifiers that affect the matching. See Pattern Modifiers.

Beispiel 1. Examples of valid patterns

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Beispiel 2. Examples of invalid patterns

  • /href='(.*)' - missing ending delimiter

  • /\w+\s*\w+/J - unknown modifier 'J'

  • 1-\d3-\d3-\d4| - missing starting delimiter

Anmerkung: The Perl-compatible regular expression functions are available in PHP 4 and in PHP 3.0.9 and up.

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. It is available at ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Inhaltsverzeichnis
preg_match — Perform a regular expression match
preg_match_all — Perform a global regular expression match
preg_replace — Perform a regular expression search and replace
preg_replace_callback — Perform a regular expression search and replace using a callback
preg_split — Split string by a regular expression
preg_quote — Quote regular expression characters
preg_grep — Return array entries that match the pattern
Pattern Modifiers — Describes possible modifiers in regex patterns
Pattern Syntax — Describes PCRE regex syntax
Zurück | Anfang | Vor
recode_file | Hoch | preg_match


preg_match

(PHP 3>= 3.0.9, PHP 4 )

preg_match -- Perform a regular expression match

Description

int preg_match (string pattern, string subject [, array matches])

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 match the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

Returns true if a match for pattern was found in the subject string, or false if not match was found or an error occurred.

Beispiel 1. Find the string of text "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.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}

Beispiel 2. find the word "web"

// 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.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}
if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    print "A match was found.";
} else {
    print "A match was not found.";
}

Beispiel 3. Getting the domain name out of a URL

// 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 | Anfang | Vor
Regular Expression Functions (Perl-Compatible) | Hoch | preg_match_all


preg_match_all

(PHP 3>= 3.0.9, PHP 4 )

preg_match_all -- Perform a global regular expression match

Description

int preg_match_all (string pattern, string subject, array matches [, int order])

Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by order.

After the first match is found, the subsequent searches are continued on from end of the last match.

order can be one of two things:

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.

preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $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.

preg_match_all ("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_SET_ORDER);
print $out[0][0].", ".$out[0][1]."\n";
print $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.

If order is not specified, it is assumed to be PREG_PATTERN_ORDER.

Returns the number of full pattern matches, or false if no match is found or an error occurred.

Beispiel 1. Getting all phone numbers out of some text.

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)

// 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 | Anfang | Vor
preg_match | Hoch | preg_replace


preg_replace

(PHP 3>= 3.0.9, PHP 4 )

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.

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Every parameter to preg_replace() can be an array.

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 1. Replacing several values

$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
print preg_replace ($patterns, $replace, "{startDate} = 1999-5-27");
This example will produce:

$startDate = 5/27/1999

Beispiel 2. Using /e modifier

preg_replace ("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);

This would capitalize all HTML tags in the input text.

Beispiel 3. Convert HTML to text

// $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 | Anfang | Vor
preg_match_all | Hoch | preg_replace_callback


preg_replace_callback

(unknown)

preg_replace_callback -- Perform a regular expression search and replace using a callback

Description

mixed preg_replace_callback (mixed pattern, mixed 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, once 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. This function was added in PHP 4.0.5.

See also preg_replace().

Zurück | Anfang | Vor
preg_replace | Hoch | preg_split


preg_split

(PHP 3>= 3.0.9, PHP 4 )

preg_split -- Split string by a regular expression

Description

array preg_split (string pattern, string subject [, int limit [, int flags]])

Anmerkung: Parameter flags was added in PHP 4 Beta 3.

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.

Beispiel 1. preg_split() example

Get the parts of a search string.

// 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");

Splitting a string into component characters.

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);

See also preg_match(),
preg_match_all(), and
preg_replace().

Zurück | Anfang | Vor
preg_replace_callback | Hoch | preg_quote


preg_quote

(PHP 3>= 3.0.9, PHP 4 )

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.

$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

// 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 | Anfang | Vor
preg_split | Hoch | preg_grep


preg_grep

(PHP 4 )

preg_grep -- Return array entries that match the pattern

Description

array preg_grep (string pattern, array input)

preg_grep() returns the array consisting of the elements of the input array that match the given pattern.

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

// return all array elements
// containing floating point numbers
$fl_array = preg_grep ("/^(\d+)?\.\d+$/", $array);

Zurück | Anfang | Vor
preg_quote | Hoch | Pattern Modifiers


Pattern Modifiers

(unknown)

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 E 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 metacharater 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.

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.

Zurück | Anfang | Vor
preg_grep | Hoch | Pattern Syntax


Pattern Syntax

(unknown)

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 char-
acters. The \v escape that was in the Perl documentation for
a long time was never in fact recognized. However, the char-
acter 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 looka-
head assertions are counted, but their entries in the
offsets vector are never set. Perl sets its numerical vari-
ables 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 sub-
ject string, they are not allowed in a pattern string
because it is passed as a normal C string, terminated by
zero. The escape sequence "\0" 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 pat-
tern 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:

(a) 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.

(b) If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not
set, the $ meta- character matches only at the very end of
the string.

(c) If PCRE_EXTRA is set, a backslash followed by a letter
with no special meaning is faulted.

(d) If PCRE_UNGREEDY is set, the greediness of the repeti-
tion 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 sup-
ported 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 charac-
ters 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-caracters

The power of regular expressions comes from the
ability to include alternatives and repetitions in the pat-
tern. 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
| 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

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-alphameric 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 follow-
ing character would otherwise be interpreted as a meta-
character, so it is always safe to precede a non-alphameric
with "\" to specify that it stands for itself. In particu-
lar, if you want to match a backslash, you write "\\".

If a pattern is compiled with the PCRE_EXTENDED option, whi-
tespace 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 charac-
ters, 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 follow-
ing 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 intro-
duced 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 charac-
ter 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 con-
trolled 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 char-
acter 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 asser-
tions. 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_NOTBOL or PCRE_NOTEOL 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.

Cicumflex 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 alter-
natives 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 con-
structs 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. Conse-
quently, patterns that are anchored in single line mode
because all branches start with "^" are not anchored in mul-
tiline 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 han-
dling of dot is entirely independent of the handling of cir-
cumflex 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, ter-
minated 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 cir-
cumflex, 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 cir-
cumflex, 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 con-
venient 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 case-
ful 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 inter-
preted 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 "-") fol-
lowed 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 inter-
preted 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 res-
tricted set of characters than the matching lower case type.
For example, the class [^\W_] matches any letter or digit,
but not underscore.

All non-alphameric 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 alter-
natives 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

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" set-
tings apply to the whole pattern (unless there are other
changes inside subpatterns). If there is more than one set-
ting 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 oth-
erwise.

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 subpat-
tern does two things:

1. It localizes a set of alternatives. For example, the pat-
tern

cat(aract|erpillar|)

matches one of the words "cat", "cataract", or "caterpil-
lar". 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 por-
tion 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 captur-
ing 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 sub-
pattern 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 sub-
strings 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 quantif-
ier, 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:

* is equivalent to {0,}
+ is equivalent to {1,}
? is 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 per-
mitted 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 com-
ments 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 pre-
ferred number of matches. Do not confuse this use of ques-
tion 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 max-
imum, 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 charac-
ter 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 pat-
tern 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 exam-
ple, after

(tweedle[dume]{3}\s*)+

has matched "tweedledum tweedledee" the value of the cap-
tured substring is "tweedledee". However, if there are
nested capturing subpatterns, the corresponding captured
values may have been set in previous iterations. For exam-
ple, 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 han-
dling of digits following a backslash.

A back reference matches whatever actually matched the cap-
turing 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 responsi-
bility", 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 case-
lessly.

There may be more than one back reference to the same sub-
pattern. 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 pat-
tern

(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 itera-
tion. 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 compli-
cated 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 asser-
tions 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 dif-
ferent 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 rewrit-
ten 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 match-
ing 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. Back-
tracking past it to previous items, however, works as nor-
mal.

An alternative description is that a subpattern of this type
matches the string of characters that an identical stan-
dalone 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 max-
imizing 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 compli-
cated 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 process-
ing time.

When a pattern contains an unlimited repeat inside a subpat-
tern 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 con-
sist 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 exam-
ple 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 hap-
pens quickly.

Conditional subpatterns

It is possible to cause the matching process to obey a sub-
pattern 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; oth-
erwise 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 pat-
tern, 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 contain-
ing non-significant white space, and with the two alterna-
tives 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 contin-
ues 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 (amongst 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 match-
ing 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 sub-
pattern 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 princi-
ple 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 | Anfang | Vor
Pattern Modifiers | Hoch | Reguläre Ausdrücke Funktionen (POSIX erweitert)


Reguläre Ausdrücke Funktionen (POSIX erweitert)

PHP Handbuch
Zurück Vor

LXV. Reguläre Ausdrücke Funktionen (POSIX erweitert)

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.

Beispiel 1. Beispiele regulärer Ausdrücke

ereg ("abc", $string);
/* 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. */

eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);
/* Gibt true zurück, falls es sich beim Client Browser
   um Netscape 2, 3 oder MSIE 3 handelt. */

ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs);
/* Setzt drei Wörter, die durch Leerzeichen getrennt
   sind, in $regs[1], $regs[2] und $regs[3] ein. */

$string = ereg_replace ("^", "<BR>", $string);
/* Setzt ein <BR> Tag vor $string. */

$string = ereg_replace ("$", "<BR>", $string);
/* Setzt ein <BR> Tag hinter $string. */

$string = ereg_replace ("\n", "", $string);
/* Entfernt alle Zeilenumbrüche aus $string. */

Inhaltsverzeichnis
ereg — Sucht Übereinstimmungen mit einem regulären Ausdruck
ereg_replace — Ersetzt einen regulären Ausdruck
eregi — Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
eregi_replace — Ersetzt einen regulären Ausdrück 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 | Anfang | Vor
Pattern Syntax | Hoch | ereg


ereg

(PHP 3, PHP 4 )

ereg -- Sucht Übereinstimmungen mit einem regulären Ausdruck

Beschreibung

int ereg (string Suchmuster, string Zeichenkette [, array regs])

Sucht in Zeichenkette 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 eine Kopie von Zeichenkette.

Wenn ereg() irgendwelche Übereinstimmungen findet, 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.

Die Suche unterscheidet zwischen Groß und Kleinschreibung.

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

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() und
eregi_replace().

Zurück | Anfang | Vor
Reguläre Ausdrücke Funktionen (POSIX erweitert) | Hoch | ereg_replace


ereg_replace

(PHP 3, PHP 4 )

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

$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.' */
?>

Siehe auch: ereg(), eregi() und eregi_replace().

Zurück | Anfang | Vor
ereg | Hoch | eregi


eregi

(PHP 3, PHP 4 )

eregi -- Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung

Beschreibung

int eregi (string Suchmuster, string Zeichenkette [, array regs])

Diese Funktion entspricht ereg() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Siehe auch: ereg(),
ereg_replace() und
eregi_replace().

Zurück | Anfang | Vor
ereg_replace | Hoch | eregi_replace


eregi_replace

(PHP 3, PHP 4 )

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.

Siehe auch: ereg(), eregi() und ereg_replace().

Zurück | Anfang | Vor
eregi | Hoch | split


split

(PHP 3, PHP 4 )

split -- Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

Beschreibung

array split (string Suchmuster, string Zeichenkette [, int Beschränkung])

Gibt ein Array mit Zeichenketten zurück, die jeweils eine Teilzeichenkette von Zeichenkette sind und durch deren Zerlegung an den durch Suchmuster des regulären Ausdrucks bestimmten Stellen entstehen. 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

$passwd_list = split (":", $passwd_line, 5);

Um ein Datum zu analysieren, das durch Schrägstriche, Punkte oder Bindestriche getrennt ist:

Beispiel 2. Split() Beispiel

$datum = "04/30/1973";  // Trennzeichen darf ein Schrägstrich, Punkt
                        // oder Bindestrich sein
list ($monat, $tag, $jahr) = split ('[/.-]', $datum);
echo "Monat: $monat; Tag: $tag; Jahr: $jahr<br>\n";

Beachten Sie, dass Suchmuster Groß- und Kleinschreibung berücksichtigt.

Beachten Sie: 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.

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: spliti(), explode() und implode().

Zurück | Anfang | Vor
eregi_replace | Hoch | spliti


spliti

(PHP 4 >= 4.0.1)

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: split(), explode() und implode().

Zurück | Anfang | Vor
split | Hoch | sql_regcase


sql_regcase

(PHP 3, PHP 4 )

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 jedes Zeichen in einen Klammerausdruck umgewandelt wird. Die Klammer enthält dieses Zeichen, wenn möglich, in groß- und kleingeschriebener Form, andernfalls enthält sie das ursprüngliche Zeichen zweimal.

Beispiel 1. Sql_regcase() Beispiel

echo sql_regcase ("Foo bar");
Gibt
[Ff][Oo][Oo] [Bb][Aa][Rr]
aus.

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 | Anfang | Vor
spliti | Hoch | Satellite CORBA client extension


Satellite CORBA client extension

PHP Handbuch
Zurück Vor

LXVI. Satellite CORBA client extension

The Satellite extension is used for accessing CORBA objects. You will need to set the idl_directory= entry in php.ini to a path where you store all IDL files you use.

Inhaltsverzeichnis
OrbitObject — Access CORBA objects
OrbitEnum — Use CORBA enums
OrbitStruct — Use CORBA structs
satellite_caught_exception — See if an exception was caught from the previous function
satellite_exception_id — Get the repository id for the latest excetpion.
satellite_exception_value — Get the exception struct for the latest exception
Zurück | Anfang | Vor
sql_regcase | Hoch | OrbitObject


OrbitObject

(unknown)

OrbitObject -- Access CORBA objects

Description

new OrbitObject (string ior)

This class provides access to a CORBA object. The ior parameter should be a string containing the IOR (Interoperable Object Reference) that identifies the remote object.

Beispiel 1. Sample IDL file

interface MyInterface {
    void SetInfo (string info);
    string GetInfo();

    attribute int value;
}

Beispiel 2. PHP code for accessing MyInterface

<?php
$obj = new OrbitObject ($ior);

$obj->SetInfo ("A 2GooD object");

echo $obj->GetInfo();

$obj->value = 42;

echo $obj->value;
?>

Zurück | Anfang | Vor
Satellite CORBA client extension | Hoch | OrbitEnum


OrbitEnum

(unknown)

OrbitEnum -- Use CORBA enums

Description

new OrbitEnum (string id)

This class represents the enumeration identified with the id parameter. The id can be either the name of the enumeration (e.g "MyEnum"), or the full repository id (e.g. "IDL:MyEnum:1.0").

Beispiel 1. Sample IDL file

enum MyEnum {
    a,b,c,d,e
};

Beispiel 2. PHP code for accessing MyEnum

<?php
$enum = new OrbitEnum ("MyEnum");

echo $enum->a;	/* write 0 */
echo $enum->c;	/* write 2 */
echo $enum->e;	/* write 4 */
?>

Zurück | Anfang | Vor
OrbitObject | Hoch | OrbitStruct


OrbitStruct

(unknown)

OrbitStruct -- Use CORBA structs

Description

new OrbitStruct (string id)

This class represents the structure identified with the id parameter. The id can be either the name of the struct (e.g "MyStruct"), or the full repository id (e.g. "IDL:MyStruct:1.0").

Beispiel 1. Sample IDL file

struct MyStruct {
    short shortvalue;
    string stringvalue;
};

interface SomeInterface {
  void SetValues (MyStruct values);
  MyStruct GetValues();
}

Beispiel 2. PHP code for accessing MyStruct

<?php
$obj = new OrbitObject ($ior);

$initial_values = new OrbitStruct ("IDL:MyStruct:1.0");
$initial_values->shortvalue = 42;
$initial_values->stringvalue = "HGTTG";

$obj->SetValues ($initial_values);

$values = $obj->GetValues();

echo $values->shortvalue;
echo $values->stringvalue;
?>

Zurück | Anfang | Vor
OrbitEnum | Hoch | satellite_caught_exception


Semaphor und Shared Memory Funktionen

PHP Handbuch
Zurück Vor

LXVII. 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, das gemeinsame Speichersegmente keinen Schutze vor konkurierenden 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
sem_get — Liefert ein Semaphore-Handle
sem_acquire — Zugriff auf einen Semaphore anfordern
sem_release — Freigabe eines angeforderten Semaphores
shm_attach — Anlegen oder anbinden eines gemeinsamen Speichersegments
shm_detach — Beenden der Anbindung an ein gemeinsames Speichersegment
shm_remove — Entfernt ein gemeinsames Speichersegment
shm_put_var — Aktualisiert einen in einem gemeinsamen Speicherbereich angelegten Wert.
shm_get_var — Liest einen in einem gemeinsamen Speicherbereich angelegten Wert.
shm_remove_var — Entfernt einen in einem gemeinsamen Speicherbereich angelegten Wert.
Zurück | Anfang | Vor
satellite_exception_value | Hoch | sem_get


sem_get

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
Semaphor und Shared Memory Funktionen | Hoch | sem_acquire


sem_acquire

(PHP 3>= 3.0.6, PHP 4 )

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, das die weitere Ausführung dieses Requests nicht mehr möglich ist.

Zurück | Anfang | Vor
sem_get | Hoch | sem_release


sem_release

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
sem_acquire | Hoch | shm_attach


shm_attach

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
sem_release | Hoch | shm_detach


shm_detach

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
shm_attach | Hoch | shm_remove


shm_remove

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
shm_detach | Hoch | shm_put_var


shm_put_var

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
shm_remove | Hoch | shm_get_var


shm_get_var

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
shm_put_var | Hoch | shm_remove_var


shm_remove_var

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
shm_get_var | Hoch | SESAM Datenbankfunktionen


SESAM Datenbankfunktionen

PHP Handbuch
Zurück Vor

LXVIII. 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 muß 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 muß natürlich die SESAM-Datenbank selbst auf dem BS2000-System installiert und konfiguriert werden:

  • der SESAM database handler (DBH) muß 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 muß 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, daß 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,muß 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 muß 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, mußte 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 muß 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 muß 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 muß 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 daß 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_connect — Eröffnet die Verbindung zu einer SESAM-Datenbank
sesam_disconnect — Trennen der Verbindung zu einer SESAM-Datenbank
sesam_settransaction — Parameter der SESAM-Transaction setzen
sesam_commit — Schreibt noch nicht gesicherte Änderungen in die SESAM-Datenbank
sesam_rollback — Verwirft alle noch nicht gesicherten Änderungen der SESAM-Datenbank
sesam_execimm — Ausführen einer "immediate" SQL-Anweisung
sesam_query — Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse
sesam_num_fields — Liefert die Anzahl von Feldern/Spalten in einem Ausgabesatz
sesam_field_name — Liefert einen Spaltennamen des Ausgabesatzes
sesam_diagnostic — Liefert Status-Informationen über den letzten SESAM-Aufruf
sesam_fetch_result — Liefert das Ergebnis einer Abfrage (ganz oder teilweise)
sesam_affected_rows — Anzahl der von einer sofortigen (???) Abfrage betroffenen Zeilen
sesam_errormsg — Liefert die Fehlermeldung des letzten SESAM-Aufrufs
sesam_field_array — Liefert Meta-Information über einzelne Ergebnisspalten
sesam_fetch_row — Lesen einer Zeile als Array
sesam_fetch_array — Liefert eine Zeile als assoziatives Array
sesam_seek_row — Setzt "scrollable Cursor" Modus für weitere Aufrufe
sesam_free_result — Gibt Betriebsmittel für die Abfrage frei (der Abfrage ???)
Zurück | Anfang | Vor
shm_remove_var | Hoch | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Eröffnet die Verbindung zu einer SESAM-Datenbank

Beschreibung

boolean 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 | Anfang | Vor
SESAM Datenbankfunktionen | Hoch | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Trennen der Verbindung zu einer SESAM-Datenbank

Description

boolean 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 | Anfang | Vor
sesam_connect | Hoch | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Parameter der SESAM-Transaction setzen

Beschreibung

boolean 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 | Anfang | Vor
sesam_disconnect | Hoch | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Schreibt noch nicht gesicherte Änderungen in die SESAM-Datenbank

Description

boolean 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 | Anfang | Vor
sesam_settransaction | Hoch | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Verwirft alle noch nicht gesicherten Änderungen der SESAM-Datenbank

Description

boolean 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 | Anfang | Vor
sesam_commit | Hoch | 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 | Anfang | Vor
sesam_rollback | Hoch | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse

Description

string sesam_query (string query [, boolean 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 boolean scrollable arameter) wird 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 | Anfang | Vor
sesam_execimm | Hoch | 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 | Anfang | Vor
sesam_query | Hoch | 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 | Anfang | Vor
sesam_num_fields | Hoch | 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 | Anfang | Vor
sesam_field_name | Hoch | 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)
boolean $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, muß 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, daß 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 | Anfang | Vor
sesam_diagnostic | Hoch | 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 | Anfang | Vor
sesam_fetch_result | Hoch | 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 | Anfang | Vor
sesam_affected_rows | Hoch | 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 | Anfang | Vor
sesam_errormsg | Hoch | 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, muß 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 | Anfang | Vor
sesam_field_array | Hoch | 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 | Anfang | Vor
sesam_fetch_row | Hoch | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Setzt "scrollable Cursor" Modus für weitere Aufrufe

Description

boolean 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 | Anfang | Vor
sesam_fetch_array | Hoch | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Gibt Betriebsmittel für die Abfrage frei (der Abfrage ???)

Description

int sesam_free_result (string result_id)

Gibt Betriebsmittel der mit result_id assoziierten Abfrage frei. Rückgabewert im Fehlerfall: FALSE.

Zurück | Anfang | Vor
sesam_seek_row | Hoch | Session Funktionen


Session Funktionen

PHP Handbuch
Zurück Vor

LXIX. Session Funktionen

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.

Falls sie mit dem Sessionmanagment von PHPLIB vertraut sind, werden sie Ähnlichkeiten zu PHP's Session-Unterstützung feststellen.

Einem Besucher wird beim Aufruf ihrer Website eine einzigartige 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.

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.

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.

Falls track_vars aktiviert und register_globals deaktiviert ist, können nur Bestandteile des globalen assoziativen Arrays $HTTP_SESSION_VARS als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array $HTTP_SESSION_VARS zur Verfügung.

Beispiel 1. Registrierung einer Variablen bei aktiviertem track_vars

<?php
session_register("count");
$HTTP_SESSION_VARS["count"]++;
?>

Wenn register_globals aktiviert ist, können alle globalen Variablen als Session-Variablen registriert werden und die Session-Variablen werden als entsprechende globale Variablen wiederhergestellt.

Beispiel 2. Registrierung einer Variablen bei aktiviertem register_globals

<?php
session_register("count");
$count++;
?>

Wenn sowohl track_vars als auch register_globals aktiviert sind, dann referenzieren die globalen Variablen und die Einträge von $HTTP_SESSION_VARS den selben Wert.

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 zuverlässig sind (Clients müssen sie nicht unbedingt akzeptieren), können wir uns nicht auf sie verlassen. Die zweite Methode hängt die Session-ID direkt an die URLs.

Wenn PHP mit --enable-trans-sid kompiliert wurde, kann es dies transparent machen. Wenn sie diese Option aktivieren, werden die URIs automatisch geändert, sodass sie die Session-ID enthalten. Alternativ können sie die Konstante SID verwenden, die definiert wird, falls vom Client keinen passendes Cookie gesendet wurde. SID hat entweder die Form session_name=session_id oder ist eine leere Zeichenkette.

Das folgende Beispiel demonstriert, wie eine Variable registriert wird und wie unter Verwendung einer SID korrekt auf eine andere Seite verwiesen wird.

Beispiel 3. Zählen der Seitenaufrufe eines einzelnen Benutzers

<?php
session_register ("count");
$count++;
?>

Hallo Besucher, Sie haben diese Seite <?php echo $count; ?> Mal
aufgerufen.<p>

<?php
# für den Fall, dass der Benutzer Cookies deaktiviert hat,
# ist das <?=SID?> nötig, um die Session-ID zu erhalten
?>

Hier gehts <A HREF="nextpage.php?<?=SID?>">weiter</A>

Das <?=SID?> ist nicht nötig, wenn PHP mit --enable-trans-sid kompiliert wurde.

Anmerkung: Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf externe Seiten zeigen und, weil es ein Sicherheitsrisiko wäre, die SID an einen anderen Server zu übermitteln, von daher keine SID angehängt.

Wenn Sie die Speicherung in einer Datenbank oder irgendeine andere Art der Speicherung realisieren wollen, müssen Sie session_set_save_handler() verwenden, um eine Reihe von benutzerdefinierten Speicherfunktionen zu erzeugen.

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 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.

  • 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.

    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.

  • session.name spezifiziert den Namen der Session, der als Cookie-Name verwendet wird. Grundeinstellung PHPSESSID.

  • session.auto_start spezifiziert, ob das Session-Modul zu Beginn einer Anfrage automatisch eine Session startet. Grundeinstellung 0 (deaktiviert).

  • 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.

  • 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 spezifiziert die prozentuale Wahrscheinlichkeit, dass die gc (garbage collection) Routine bei jeder Anfrage gestartet wird. Grundeinstellung 1.

  • session.gc_maxlifetime spezifiziert die Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und entsorgt werden.

  • 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 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 spezifiziert die Anzahl der Bytes, die von der oben spezifizierten Datei gelesen werden. Grundeinstellung 0 (deaktiviert).

  • session.use_cookies spezifiziert, ob das Modul Cookies verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung 1 (aktiviert).

  • session.cookie_path spezifiziert den Pfad, in dem das Session-Cookie gesetzt wird. Grundeinstellung /.

  • session.cookie_domain spezifiziert die Domain, unter der das Session-Cookie gesetzt wird. In der Grundeinstellung überhaupt keine.

  • session.cache_limiter spezifiziert die Methode der Cacheverwaltung, die bei Session-Seiten benutzt wird (nocache/private/public). Grundeinstellung nocache.

  • session.cache_expire spezifiziert in Minuten, wie lange Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe wirkungslos. Grundeinstellung 180.

Anmerkung: Die Behandlung von Sessions wurde in PHP 4.0 eingeführt.

Inhaltsverzeichnis
session_start — Initialisiert eine Session
session_destroy — Löscht alle in einer Session registrierten Daten
session_name — Liefert und/oder setzt den Namen der aktuellen Session
session_module_name — Liefert und/oder setzt das aktuelle Session-Modul
session_save_path — Liefert und/oder setzt den aktuellen Speicherpfad der Session
session_id — Liefert und/oder setzt die aktuelle Session-ID
session_register — Registriert eine oder mehrere Variablen in der aktuellen Session
session_unregister — Hebt die Registrierung einer Variablen in der aktuellen Session auf
session_unset — Befreit alle Session-Variablen
session_is_registered — Überprüft, ob eine Variable in einer Session registriert ist
session_get_cookie_params — Liefert die Session-Cookie Parameter
session_set_cookie_params — Setzt die Session-Cookie Parameter
session_decode — Decodiert die Daten einer Session aus einer Zeichenkette
session_encode — Codiert die Daten der aktuellen Session als Zeichenkette
session_set_save_handler — Setzt benutzerdefinierte Session-Speicherfunktionen
session_cache_limiter — Liefert und/oder setzt die aktuelle Cacheverwaltung
Zurück | Anfang | Vor
sesam_free_result | Hoch | session_start


session_start

(PHP 4 )

session_start -- Initialisiert eine Session

Beschreibung

bool session_start(void);

session_start() erzeugt eine Session (oder nimmt die aktuelle, basierend auf der Session-ID, die über eine GET-Variable oder ein Cookie übermittelt wurde, wieder auf).

Diese Funktion gibt immer true zurück.

Zurück | Anfang | Vor
Session Funktionen | Hoch | session_destroy


session_destroy

(PHP 4 )

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.

Diese Funktion gibt nach erfolgtem Löschen der Daten true zurück und false, wenn dabei ein Fehler auftritt.

Zurück | Anfang | Vor
session_start | Hoch | session_name


session_name

(PHP 4 )

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

$previous_name = session_name ("WebsiteID");

echo "Der vorhergehende Session-Name war $previous_name<p>";
?>

Zurück | Anfang | Vor
session_destroy | Hoch | session_module_name


session_module_name

(PHP 4 )

session_module_name -- Liefert und/oder setzt das aktuelle Session-Modul

Beschreibung

string session_module_name ([string module])

session_module_name() gibt den Namen des aktuellen Session-Moduls zurück. Wenn module angegeben wird, wird stattdessen dieses Modul verwendet.

Zurück | Anfang | Vor
session_name | Hoch | session_save_path


session_save_path

(PHP 4 )

session_save_path -- Liefert und/oder setzt den aktuellen Speicherpfad der Session

Beschreibung

string session_save_path ([string path])

session_save_path() gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der Session-Daten verwendet wird. Wenn path angegeben wird, wird der Pfad, unter dem Daten gespeichert werden, entsprechend geändert.

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.

Zurück | Anfang | Vor
session_module_name | Hoch | session_id


session_id

(PHP 4 )

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.

Die Konstante SID kann auch dazu verwendet werden, den aktuellen Namen und Session-ID als Zeichenkette, passend zum Hinzufügen zu URLs, zu erhalten.

Zurück | Anfang | Vor
session_save_path | Hoch | session_register


session_register

(PHP 4 )

session_register -- Registriert eine oder mehrere Variablen in der aktuellen Session

Beschreibung

bool session_register (mixed name [, mixed ...])

session_register() variable Anzahl von Argumenten die jeweils entweder eine Zeichenkette sein können, die den Variablennamen trägt, oder ein Array, das aus solchen Variablennamen oder anderen Arrays besteht. Für jeden Variablennamen registriert session_register() die globale Variable in der aktuellen Session unter diesem Namen.

Diese Funktion gibt true zurück, wenn die Variable erfolgreich in der Session registriert wurde.

Zurück | Anfang | Vor
session_id | Hoch | session_unregister


session_unregister

(PHP 4 )

session_unregister -- Hebt die Registrierung einer 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.

Zurück | Anfang | Vor
session_register | Hoch | session_unset


session_unset

(PHP 4 >= 4.0b4)

session_unset -- Befreit alle Session-Variablen

Beschreibung

void session_unset (void);

Die Funktion session_unset() befreit alle Session-Variablen, die gegenwärtig registriert sind.

Zurück | Anfang | Vor
session_unregister | Hoch | session_is_registered


session_is_registered

(PHP 4 )

session_is_registered -- Überprüft, ob eine 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 Variable mit dem Namen name registriert ist.

Zurück | Anfang | Vor
session_unset | Hoch | session_get_cookie_params


session_get_cookie_params

(PHP 4 >= 4.0RC2)

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 Felder:

  • "lifetime" - Die Lebensdauer des Cookies.

  • "path" - Der Pfad, unter dem Informationen gespeichert sind.

  • "domain" - Die Domain des Cookies.

Zurück | Anfang | Vor
session_is_registered | Hoch | session_set_cookie_params


session_set_cookie_params

(PHP 4 >= 4.0b4)

session_set_cookie_params -- Setzt die Session-Cookie Parameter

Beschreibung

void session_set_cookie_params (int lifetime [, string path [, string domain]])

Setzen der Cookie-Parameter, die in der php.ini definiert sind. Diese Funktion wirkt sich nur für die Dauer des Scripts aus.

Zurück | Anfang | Vor
session_get_cookie_params | Hoch | session_decode


session_decode

(PHP 4 )

session_decode -- Decodiert die Daten einer Session aus einer Zeichenkette

Beschreibung

bool session_decode (string data)

session_decode() decodiert die Daten der Session in data und setzt die Variablen, die in der Session gespeichert sind.

Zurück | Anfang | Vor
session_set_cookie_params | Hoch | session_encode


session_encode

(PHP 4 )

session_encode -- Codiert die Daten der aktuellen Session als Zeichenkette

Beschreibung

string session_encode(void);

session_encode() gibt eine Zeichenkette mit dem codierten Inhalt der aktuellen Session zurück.

Zurück | Anfang | Vor
session_decode | Hoch | session_set_save_handler


session_set_save_handler

(PHP 4 >= 4.0b4)

session_set_save_handler -- Setzt benutzerdefinierte Session-Speicherfunktionen

Beschreibung

void 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.

Anmerkung: Sie müssen in Ihrer php.ini-Datei die Konfigurationsoption session.save_handler auf user setzen, damit session_set_save_handler() wirksam wird.

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.

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.

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("");
  }

}

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

?>

Zurück | Anfang | Vor
session_encode | Hoch | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3)

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 steuert die Cache-Kontrolle der HTTP-Header, die zum Client geschickt werden. Diese Header bestimmen die Regel, nach der der Seiteninhalt in den Cachespeicher aufgenommen wird. Wird die Cacheverwaltung beispielsweise auf nocache gesetzt, ist eine clientseitige Speicherung im Cache nicht erlaubt. Andererseits erlaubt der Wert public die Aufnahme in den Cachespeicher. Sie kann auch auf private gesetzt werden, was etwas restriktiver ist, als public.

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>";
?>

Zurück | Anfang | Vor
session_set_save_handler | Hoch | Shared Memory Functions


Shared Memory Functions

PHP Handbuch
Zurück Vor

LXX. Shared Memory Functions

Shmop is an easy to use set of functions that allows php to read, write, create and delete UNIX shared memory segments. The functions will not work on windows, as it does not support shared memory. To use shmop you will need to compile php with the --enable-shmop parameter in your configure line.

Anmerkung: The functions explained in the chapter begin all with shm_() in PHP 4.0.3, but in PHP 4.0.4 and later versions these names are changed to begin with shmop_().

Beispiel 1. Shared Memory Operations Overview

<?php

// Create 100 byte shared memory block with system id if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
    echo "Couldn't create shared memory segment\n";
}

// Get shared memory block's size
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: ".$shm_size. " has been created.\n";

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if($shm_bytes_written != strlen("my shared memory block")) {
    echo "Couldn't write the entire length of data\n";
}

// Now lets read the string back
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
    echo "Couldn't read from shared memory block\n";
}
echo "The data inside shared memory was: ".$my_string."\n";

//Now lets delete the block and close the shared memory segment
if(!shmop_delete($shm_id)) {
    echo "Couldn't mark shared memory block for deletion.";
}
shmop_close($shm_id);

?>

Inhaltsverzeichnis
shmop_open — Create or open shared memory block
shmop_read — Read data from shared memory block
shmop_write — Write data into shared memory block
shmop_size — Get size of shared memory block
shmop_delete — Delete shared memory block
shmop_close — Close shared memory block
Zurück | Anfang | Vor
session_cache_limiter | Hoch | shmop_open


shmop_size

(PHP 4 >= 4.0.4)

shmop_size -- Get size of shared memory block

Description

int shmop_size (int shmid)

shmop_size() is used to get the size, in bytes of the shared memory block.

shmop_size() takes the shmid, which is the shared memory block identifier created by shmop_open(), the function will return and int, which represents the number of bytes the shared memory block occupies.

Beispiel 1. Getting the size of the shared memory block

<?php
$shm_size = shmop_size($shm_id);
?>

This example will put the size of shared memory block identified by $shm_id into $shm_size.

Zurück | Anfang | Vor
shmop_write | Hoch | shmop_delete


Shockwave Flash functions

PHP Handbuch
Zurück Vor

LXXI. Shockwave Flash functions

PHP ermöglicht es Shockwave Flash Dateien mit Paul Haeberli's libswf Modul zu erzeugen. Sie können das libswf-Modul unter http://reality.sgi.com/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 ();
?>
Dieses Beispiel wird die Animation generieren, die Sie unter folgender Adresse (URL) ansehen können: url.

Anmerkung: SWF-Unterstützung wurde in PHP4 RC2 hinzugefügt.

Inhaltsverzeichnis
swf_openfile — Öffnet eine neue Shockwave Flash Datei
swf_closefile — Schließt die aktuelle SWF-Datei
swf_labelframe — Beschriftet den aktuellen Frame
swf_showframe — Zeigt den aktuellen Frame an
swf_setframe — Wechselt zu einem spezifizierten Frame
swf_getframe — Holt die Frame-Nummer des aktuellen Frames
swf_mulcolor — Setzt die "global multiply"-Farbe auf den spezifizierten rgba-Wert
swf_addcolor — Setzt die "global add"-Farbe auf den spezifizierten rgba-Wert
swf_placeobject — Place an object onto the screen
swf_modifyobject — Modify an object
swf_removeobject — Remove an object
swf_nextid — Returns the next free object id
swf_startdoaction — Start a description of an action list for the current frame
swf_actiongotoframe — Play a frame and then stop
swf_actiongeturl — Get a URL from a Shockwave Flash movie
swf_actionnextframe — Go foward one frame
swf_actionprevframe — Go backwards one frame
swf_actionplay — Start playing the flash movie from the current frame
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_actionsettarget — Set the context for actions
swf_actiongotolabel — Display a frame with the specified label
swf_enddoaction — End the current action
swf_defineline — Define a line
swf_definerect — Define a rectangle
swf_definepoly — Define a polygon
swf_startshape — Start a complex shape
swf_shapelinesolid — Set the current line style
swf_shapefilloff — Turns off filling
swf_shapefillsolid — Set the current fill style to the specified color
swf_shapefillbitmapclip — Set current fill mode to clipped bitmap
swf_shapefillbitmaptile — Set current fill mode to tiled bitmap
swf_shapemoveto — Move the current position
swf_shapelineto — Draw a line
swf_shapecurveto — Draw a quadratic bezier curve between two points
swf_shapecurveto3 — Draw a cubic bezier curve
swf_shapearc — Draw a circular arc
swf_endshape — Completes the definition of the current shape
swf_definefont — Defines a font
swf_setfont — Change the current font
swf_fontsize — Change the font size
swf_fontslant — Set the font slant
swf_fonttracking — Set the current font tracking
swf_getfontinfo — The height in pixels of a capital A and a lowercase x
swf_definetext — Define a text string
swf_textwidth — Get the width of a string
swf_definebitmap — Define a bitmap
swf_getbitmapinfo — Get information about a bitmap
swf_startsymbol — Define a symbol
swf_endsymbol — End the definition of a symbol
swf_startbutton — Start the definition of a button
swf_addbuttonrecord — Controls location, appearance and active area of the current button
swf_oncondition — Describe a transition used to trigger an action list
swf_endbutton — End the definition of the current button
swf_viewport — Select an area for future drawing
swf_ortho — Defines an orthographic mapping of user coordinates onto the current viewport
swf_ortho2 — Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_perspective — Define a perspective projection transformation
swf_polarview — Define the viewer's position with polar coordinates
swf_lookat — Define a viewing transformation
swf_pushmatrix — Push the current transformation matrix back unto the stack
swf_popmatrix — Restore a previous transformation matrix
swf_scale — Scale the current transformation
swf_translate — Translate the current transformations
swf_rotate — Rotate the current transformation
swf_posround — Enables or Disables the rounding of the translation when objects are placed or moved
Zurück | Anfang | Vor
shmop_close | Hoch | swf_openfile


swf_openfile

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
Shockwave Flash functions | Hoch | swf_closefile


swf_closefile

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_openfile | Hoch | swf_labelframe


swf_labelframe

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_closefile | Hoch | swf_showframe


swf_showframe

(PHP 4 >= 4.0RC2)

swf_showframe -- Zeigt den aktuellen Frame an

Beschreibung

void swf_showframe (void);

Die swf_showframe() Funktion gibt den aktuellen Frame aus.

Zurück | Anfang | Vor
swf_labelframe | Hoch | swf_setframe


swf_setframe

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_showframe | Hoch | swf_getframe


swf_getframe

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_setframe | Hoch | swf_mulcolor


swf_mulcolor

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_getframe | Hoch | swf_addcolor


swf_addcolor

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_mulcolor | Hoch | swf_placeobject


swf_placeobject

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_addcolor | Hoch | swf_modifyobject


swf_modifyobject

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_placeobject | Hoch | swf_removeobject


swf_removeobject

(PHP 4 >= 4.0RC2)

swf_removeobject -- Remove an object

Description

void swf_removeobject (int depth)

Removes the object at the depth specified by depth.

Zurück | Anfang | Vor
swf_modifyobject | Hoch | swf_nextid


swf_nextid

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_removeobject | Hoch | swf_startdoaction


swf_startdoaction

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_nextid | Hoch | swf_actiongotoframe


swf_actiongotoframe

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_startdoaction | Hoch | swf_actiongeturl


swf_actiongeturl

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actiongotoframe | Hoch | swf_actionnextframe


swf_actionnextframe

(PHP 4 >= 4.0RC2)

swf_actionnextframe -- Go foward one frame

Description

void swf_actionnextframe (void);

Go foward one frame.

Zurück | Anfang | Vor
swf_actiongeturl | Hoch | swf_actionprevframe


swf_actionprevframe

(PHP 4 >= 4.0RC2)

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe (void);

Zurück | Anfang | Vor
swf_actionnextframe | Hoch | swf_actionplay


swf_actionplay

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actionprevframe | Hoch | swf_actionstop


swf_actionstop

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actionplay | Hoch | swf_actiontogglequality


swf_actiontogglequality

(PHP 4 >= 4.0RC2)

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality (void);

Toggle the flash movie between high and low quality.

Zurück | Anfang | Vor
swf_actionstop | Hoch | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actiontogglequality | Hoch | swf_actionsettarget


swf_actionsettarget

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actionwaitforframe | Hoch | swf_actiongotolabel


swf_actiongotolabel

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_actionsettarget | Hoch | swf_enddoaction


swf_enddoaction

(PHP 4 >= 4.0RC2)

swf_enddoaction -- End the current action

Description

void swf_enddoaction (void);

Ends the current action started by the swf_startdoaction() function.

Zurück | Anfang | Vor
swf_actiongotolabel | Hoch | swf_defineline


swf_defineline

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_enddoaction | Hoch | swf_definerect


swf_definerect

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_defineline | Hoch | swf_definepoly


swf_definepoly

(PHP 4 >= 4.0.0)

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 | Anfang | Vor
swf_definerect | Hoch | swf_startshape


swf_startshape

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_definepoly | Hoch | swf_shapelinesolid


swf_shapelinesolid

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_startshape | Hoch | swf_shapefilloff


swf_shapefilloff

(PHP 4 >= 4.0RC2)

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff (void);

The swf_shapeFillOff() function turns off filling for the current shape.

Zurück | Anfang | Vor
swf_shapelinesolid | Hoch | swf_shapefillsolid


swf_shapefillsolid

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapefilloff | Hoch | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapefillsolid | Hoch | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapefillbitmapclip | Hoch | swf_shapemoveto


swf_shapemoveto

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapefillbitmaptile | Hoch | swf_shapelineto


swf_shapelineto

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapemoveto | Hoch | swf_shapecurveto


swf_shapecurveto

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapelineto | Hoch | swf_shapecurveto3


swf_shapecurveto3

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapecurveto | Hoch | swf_shapearc


swf_shapearc

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapecurveto3 | Hoch | swf_endshape


swf_endshape

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_shapearc | Hoch | swf_definefont


swf_definefont

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_endshape | Hoch | swf_setfont


swf_setfont

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_definefont | Hoch | swf_fontsize


swf_fontsize

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_setfont | Hoch | swf_fontslant


swf_fontslant

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_fontsize | Hoch | swf_fonttracking


swf_fonttracking

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_fontslant | Hoch | swf_getfontinfo


swf_getfontinfo

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_fonttracking | Hoch | swf_definetext


swf_definetext

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_getfontinfo | Hoch | swf_textwidth


swf_textwidth

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_definetext | Hoch | swf_definebitmap


swf_definebitmap

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_textwidth | Hoch | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_definebitmap | Hoch | swf_startsymbol


swf_startsymbol

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_getbitmapinfo | Hoch | swf_endsymbol


swf_endsymbol

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_startsymbol | Hoch | swf_startbutton


swf_startbutton

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_endsymbol | Hoch | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_startbutton | Hoch | swf_oncondition


swf_oncondition

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_addbuttonrecord | Hoch | swf_endbutton


swf_endbutton

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_oncondition | Hoch | swf_viewport


swf_viewport

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_endbutton | Hoch | 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 | Anfang | Vor
swf_viewport | Hoch | swf_ortho2


swf_ortho2

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_ortho | Hoch | swf_perspective


swf_perspective

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_ortho2 | Hoch | swf_polarview


swf_polarview

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_perspective | Hoch | swf_lookat


swf_lookat

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_polarview | Hoch | swf_pushmatrix


swf_pushmatrix

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_lookat | Hoch | swf_popmatrix


swf_popmatrix

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_pushmatrix | Hoch | swf_scale


swf_scale

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_popmatrix | Hoch | swf_translate


swf_translate

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_scale | Hoch | swf_rotate


swf_rotate

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_translate | Hoch | swf_posround


swf_posround

(PHP 4 >= 4.0RC2)

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 | Anfang | Vor
swf_rotate | Hoch | SNMP functions


SNMP functions

PHP Handbuch
Zurück Vor

LXXII. SNMP functions

Um die SNMP Funktionen nutzen zu können muss das UCD SNMP Paket installiert sein. Unter Windows sind diese Funktionen nru 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 Konfigureieren 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
snmpget — Ein SNMP Objekt holen
snmpset — Set an SNMP object
snmpwalk — Fetch all the SNMP objects from an agent
snmpwalkoid — Query for a tree of information about a network entity
snmp_get_quick_print — Fetch the current value of the UCD library's quick_print setting
snmp_set_quick_print — Set the value of quick_print within the UCD SNMP library.
Zurück | Anfang | Vor
swf_posround | Hoch | snmpget


snmpget

(PHP 3, PHP 4 )

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 | Anfang | Vor
SNMP functions | Hoch | snmpset


snmpset

(PHP 3>= 3.0.12, PHP 4 >= 4.0b2)

snmpset -- Set an SNMP object

Description

bool snmpset (string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Sets the specified SNMP object value, returning true on success and false on error.

The snmpset() function is used to set the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

Zurück | Anfang | Vor
snmpget | Hoch | snmpwalk


snmpwalk

(PHP 3, PHP 4 )

snmpwalk -- Fetch all the SNMP objects from an agent

Description

array snmpwalk (string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an array of SNMP object values starting from the object_id() as root and false on error.

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A null object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

$a = snmpwalk("127.0.0.1", "public", "");

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

for ($i=0; $i<count($a); $i++) {
    echo $a[$i];
}

Zurück | Anfang | Vor
snmpset | Hoch | snmpwalkoid


snmpwalkoid

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

snmpwalkoid -- Query for a tree of information about a network entity

Description

array snmpwalkoid (string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an associative array with object ids and their respective object value starting from the object_id as root and false on error.

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A null object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility.

$a = snmpwalkoid("127.0.0.1", "public", "");

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br>\n";
}

Zurück | Anfang | Vor
snmpwalk | Hoch | snmp_get_quick_print


snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

snmp_get_quick_print -- Fetch the current value of the UCD library's quick_print setting

Description

boolean snmp_get_quick_print (void )

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

$quickprint = snmp_get_quick_print();

Above function call would return false if quick_print is on, and true if quick_print is on.

snmp_get_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

See: snmp_set_quick_print() for a full description of what quick_print does.

Zurück | Anfang | Vor
snmpwalkoid | Hoch | snmp_set_quick_print


snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library.

Description

void snmp_set_quick_print (boolean quick_print)

Sets the value of quick_print within the UCD SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

Setting quick_print is often used when using the information returned rather then displaying it.

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";

The first value printed might be: 'Timeticks: (0) 0:00:00.00', whereas with quick_print enabled, just '0:00:00.00' would be printed.

By default the UCD SNMP library returns verbose values, quick_print is used to return only the value.

Currently strings are still returned with extra quotes, this will be corrected in a later release.

snmp_set_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Zurück | Anfang | Vor
snmp_get_quick_print | Hoch | Socket functions


Socket functions

PHP Handbuch
Zurück Vor

LXXIII. Socket functions

The socket extension implements a low-level interface to the socket communication functions, providing the possibility to act as a socket server as well as a client.

The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.

For a more generic client-side socket interface, see fsockopen() and pfsockopen().

When using these functions, it is important to remember that while many of them have identical names to their C counterparts, they often have different declarations. Please be sure to read the descriptions to avoid confusion.

That said, those unfamiliar with socket programming can still find a lot of useful material in the appropriate Unix man pages, and there is a great deal of tutorial information on socket programming in C on the web, much of which can be applied, with slight modifications, to socket programming in PHP.

Beispiel 1. Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

<?php
error_reporting (E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit (0);

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket (AF_INET, SOCK_STREAM, 0)) < 0) {
    echo "socket() failed: reason: " . strerror ($sock) . "\n";
}

if (($ret = bind ($sock, $address, $port)) < 0) {
    echo "bind() failed: reason: " . strerror ($ret) . "\n";
}

if (($ret = listen ($sock, 5)) < 0) {
    echo "listen() failed: reason: " . strerror ($ret) . "\n";
}

do {
    if (($msgsock = accept_connect($sock)) < 0) {
        echo "accept_connect() failed: reason: " . strerror ($msgsock) . "\n";
        break;
    }
    do {
        $buf = '';
        $ret = read ($msgsock, $buf, 2048);
        if ($ret < 0) {
            echo "read() failed: reason: " . strerror ($ret) . "\n";
            break 2;
        }
        if ($ret == 0) {
            break 2;
        }
        $buf = trim ($buf);
        if ($buf == 'quit') {
            close ($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        write ($msgsock, $talkback, strlen ($talkback));
        echo "$buf\n";
    } while (true);
    close ($msgsock);
} while (true);

close ($sock);
?>

Beispiel 2. Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting (E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname ('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname ('www.php.net');

/* Create a TCP/IP socket. */
$socket = socket (AF_INET, SOCK_STREAM, 0);
if ($socket < 0) {
    echo "socket() failed: reason: " . strerror ($socket) . "\n";
} else {
    "socket() successful: " . strerror ($socket) . "\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = connect ($socket, $address, $service_port);
if ($result < 0) {
    echo "connect() failed.\nReason: ($result) " . strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.0\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
write ($socket, $in, strlen ($in));
echo "OK.\n";

echo "Reading response:\n\n";
while (read ($socket, $out, 2048)) {
    echo $out;
}

echo "Closing socket...";
close ($socket);
echo "OK.\n\n";
?>

Inhaltsverzeichnis
accept_connect — Accepts a connection on a socket
bind — Binds a name to a socket
close — Closes a file descriptor
connect — Initiates a connection on a socket
listen — Listens for a connection on a socket
read — Read from a socket
socket — Create a socket (endpoint for communication)
strerror — Return a string describing a socket error
write — Write to a socket
Zurück | Anfang | Vor
snmp_set_quick_print | Hoch | accept_connect


accept_connect

(PHP 4 >= 4.0.2)

accept_connect -- Accepts a connection on a socket

Description

int accept_connect (int socket)

After the socket socket has been created using socket(), bound to a name with bind(), and told to listen for connections with listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket descriptor is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, accept_connect() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or set_nonblock(), an error code will be returned.

The socket descriptor returned by accept_connect() may not be used to accept new connections. The original listening socket socket, however, remains open and may be reused.

Returns a new socket descriptor on success, or a negative error code on failure. This code may be passed to strerror() to get a textual explanation of the error.

See also
bind(),
connect(),
listen(),
socket(),
socket_get_status(), and
strerror().

Zurück | Anfang | Vor
Socket functions | Hoch | bind


bind

(PHP 4 >= 4.0.2)

bind -- Binds a name to a socket

Description

int bind (int socket, string address [, int port])

bind() binds the name given in address to the socket described by socket, which must be a valid socket descriptor created with socket().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Returns zero on success, or a negative error code on failure. This code may be passed to strerror() to get a textual explanation of the error.

See also
accept_connect(),
connect(),
listen(),
socket(),
socket_get_status(), and
strerror().

Zurück | Anfang | Vor
accept_connect | Hoch | close


close

(PHP 4 >= 4.0.2)

close -- Closes a file descriptor

Description

bool close (int socket)

close() closes the file (or socket) descriptor given by socket.

Note that close() should not be used on PHP file descriptors created with fopen(), popen(), fsockopen(), or psockopen(); it is meant for sockets created with socket() or accept_connect().

Returns true on success, or false if an error occurs (i.e., socket is invalid).

See also bind(), listen(),
socket(),
socket_get_status(), and
strerror().

Zurück | Anfang | Vor
bind | Hoch | connect


connect

(PHP 4 >= 4.0.2)

connect -- Initiates a connection on a socket

Description

int connect (int socket, string address [, int port])

Initiates a connection using the socket descriptor socket, which must be a valid socket descriptor created with socket().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Returns zero on success, or a negative error code on failure. This code may be passed to strerror() to get a textual explanation of the error.

See also
bind(),
listen(),
socket(),
socket_get_status(), and
strerror().

Zurück | Anfang | Vor
close | Hoch | listen


listen

(PHP 4 >= 4.0.2)

listen -- Listens for a connection on a socket

Description

int listen (int socket, int backlog)

After the socket socket has been created using socket() and bound to a name with bind(), it may be told to listen for incoming connections on socket. A maximum of backlog incoming connections will be queued for processing.

listen() is applicable only to sockets with type SOCK_STREAM or SOCK_SEQPACKET.

Returns zero on success, or a negative error code on failure. This code may be passed to strerror() to get a textual explanation of the error.

See also
accept_connect(),
bind(),
connect(),
socket(),
socket_get_status(), and
strerror().

Zurück | Anfang | Vor
connect | Hoch | read


read

(PHP 4 >= 4.0.2)

read -- Read from a socket

Description

int read (int socket_des, string &buffer, int length)

The function read() reads from socket socket_descreated by the accept_connect() function into &buffer the number of bytes set by length. Otherwise you can use \n, \t or \0 to end reading. Returns number of bytes that have been read.

See also
accept_connect(),
bind(),
connect(),
listen(),
strerror(),
socket_get_status(). and
write().

Zurück | Anfang | Vor
listen | Hoch | socket


socket

(PHP 4 >= 4.0.2)

socket -- Create a socket (endpoint for communication)

Description

int socket (int domain, int type, int protocol)

Creates a communication endpoint (a socket), and returns a descriptor to the socket.

The domain parameter sets the domain. Currently, AF_INET and AF_UNIX are understood.

The type parameter selects the socket type. This is one of SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM, or SOCK_PACKET.

protocol sets the protocol.

Returns a valid socket descriptor on success, or a negative error code on failure. This code may be passed to strerror() to get a textual explanation of the error.

For more information on the usage of socket(), as well as on the meanings of the various parameters, see the Unix man page socket (2).

See also
accept_connect(),
bind(),
connect(),
listen(),
strerror(), and
socket_get_status().

Zurück | Anfang | Vor
read | Hoch | strerror


strerror

(PHP 4 >= 4.0.2)

strerror -- Return a string describing a socket error

Description

string strerror (int errno)

strerror() takes as its errno parameter the return value of one of the socket functions, and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you just pass it to strerror(), and it tells you what happened.

Beispiel 1. strerror() example

<?php
if (($socket = socket (AF_INET, SOCK_STREAM, 0)) < 0) {
   echo "socket() failed: reason: " . strerror ($socket) . "\n";
}

if (($ret = bind ($socket, '127.0.0.1', 80)) < 0) {
   echo "bind() failed: reason: " . strerror ($ret) . "\n";
}
?>

The expected output from the above example (assuming the script is not run with root privileges):

        bind() failed: reason: Permission denied

See also
accept_connect(),
bind(),
connect(),
listen(),
socket(), and
socket_get_status().

Zurück | Anfang | Vor
socket | Hoch | write


write

(PHP 4 >= 4.0.2)

write -- Write to a socket

Description

int write (int socket_des, string &buffer, int length)

The function write() writes to the socket socket_des from &buffer the number of bytes set by length.

See also
accept_connect(),
bind(),
connect(),
listen(),
read(),
strerror(), and
socket_get_status().

Zurück | Anfang | Vor
strerror | Hoch | String-Funktionen


String-Funktionen

PHP Handbuch
Zurück Vor

LXXIV. String-Funktionen

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 zum Funktionsweise von Strings (insbesondere beim Gebrauch von einfachen bzw. doppelten Anführungszeichen und Escape-Sequenzen) erhalten Sie unter dem Strings-Eintrag unter Typen des Manuals.

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 führende Leerzeichen
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
get_html_translation_table — Gibt die Übersetzungs-Tabelle zurück, die von htmlspecialchars() und htmlentities() benutzt wird
get_meta_tags — Liest die Attribut-Inhalte aller Meta-Tags aus und gibt diese als Array zurück
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
htmlentities — Wandelt alle Sonderzeichen in entsprechende HTML-Codes um
htmlspecialchars — Diese Funktion 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
ltrim — Entfernt führende Leerraum eines Strings
md5 — Errechnet den MD5-Code eines Strings
Metaphone — Berechnet den metaphone-Schlüssel eines Strings
nl2br — Fügt HTML-Zeilen-Umbrüche vor Zeilenumbrüche in Strings ein
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
sscanf — Übertragt die Eingaben eines Strings in ein angegebenes Format
setlocale — Setzt lokale Informationen
similar_text — Berechnet die Ähnlichkeit zweier Zeichenketten
soundex — Berechnet die Laut-Ähnlichkeit eines Strings
sprintf — Gibt einen formatierten String zurück
strcasecmp — Binärer Vergleich von Zeichenketten
strchr — Findet das erste Vorkommen eines Zeichens
strcmp — Binärer Vergleich zweier Strings
strcspn — Ermittelt die Anzahl der nicht übereinstimmenden Zeichen
strip_tags — Entfernt HTML- und PHP-Tags aus einem String
StripCSlashes — Umkehrung / Gegenstück zu addcslashes
StripSlashes — Umkehrung / Gegenstück zu addslashes
stristr — Wie strstr() ohne Rücksicht auf Groß- bzw. Kleinschreibung
strlen — Ermitteln der String-Länge
strnatcmp — String-Vergleich unter Verwendung einer "natürlichen Ordnung"
strnatcasecmp — String-Vergleich "natürlicher Ordnung" ohne Unterschesidung der Schreibweise
strncmp — Binary safe string comparison of the first n characters
str_pad — Erweitert einen String auf eine bestimmte Länge unter Verwendung eines anderen Strings
strpos — Ermitteln des ersten Vorkommens innerhalb eines Strings
strrchr — Findet das letzte Vorkommen eines Zeichens innerhalb einer Zeichenkette
str_repeat — Wiederholung eine String-Ausgabe
strrev — Umdrehen eines Strings
strrpos — Findet letztes Vorkommen eines Zeichens in einem String
strspn — Ermittelt die Länge der übereinstimmenden Zeichen
strstr — Findet das erste Vorkommen eines Strings
strtok — Zerlegt einen String
strtolower — Setzt einen String in Kleinbuchstaben um
strtoupper — Setzt einen String in Großbuchstaben um
str_replace — Ersetzt alle Vorkommen eines Strings in einem anderen String
strtr — Tauscht bestimmte Zeichen aus
substr — Gibt einen Teilstring zurück
substr_count — Ermittelt die Häufigkeit des Vorkommens einer Zeichenkette in einem String
substr_replace — Ersetzt Text in einer Zeichenkette
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
wordwrap — Zeilenumbruch eines Strings an einer angegebenen Stelle unter Verwendung eines angegebenen Trennzeichens
Zurück | Anfang | Vor
write | Hoch | AddCSlashes


AddCSlashes

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
String-Funktionen | Hoch | AddSlashes


AddSlashes

(PHP 3, PHP 4 )

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 | Anfang | Vor
AddCSlashes | Hoch | bin2hex


bin2hex

(PHP 3>= 3.0.9, PHP 4 )

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 | Anfang | Vor
AddSlashes | Hoch | Chop


Chop

(PHP 3, PHP 4 )

Chop -- Entfernt führende Leerzeichen

Beschreibung:

string chop (string str)

Gibt die in str enthaltene Zeichenkette ohne evtl. vorhandene führende Leerzeichen zurück. In dem String enthaltene Zeilenvorschübe werden entfernt.

Beispiel 1. Chop()-Beispiel:

$string_mit_NL = "          10 führende Leerzeichen mit \n\n neuer Zeile";
echo chop($string_mit_NL);

// Die Ausgabe lautet:
10 führende Leerzeichen mit neuer Zeile

Anmerkung: Chop() unterscheidet sich von der Perl-Funktion chop(), die das letzte Zeichen eines Strings entfernt.

Siehe auch trim(), ltrim() und rtrim().

Zurück | Anfang | Vor
bin2hex | Hoch | Chr


Chr

(PHP 3, PHP 4 )

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 | Anfang | Vor
Chop | Hoch | chunk_split


chunk_split

(PHP 3>= 3.0.6, PHP 4 )

chunk_split -- Zerlegt einen String in Teile gleicher Länge

Beschreibung:

string chunk_split (string string [, 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));
Diese Funktion arbeitet wesentlich schneller als ereg_replace().

Anmerkung: Chunk_split() ist ab Version 3.0.6 vorhanden.

Zurück | Anfang | Vor
Chr | Hoch | convert_cyr_string


convert_cyr_string

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
chunk_split | Hoch | count_chars


count_chars

(PHP 4 >= 4.0b4)

count_chars -- Gibt Informationen über die in einem String enthaltenen Zeichen zurück

Beschreibung:

mixed count_chars (string string [, 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 voreingestellt auf 0. In Abhängigkeit des mode-Wertes gibt count_chars() das folgende zurück:

  • 0 - ein Array mit Byte-Werten für die Häufigkeit (auch 0-Vorkommen) jedes Zeichens.

  • 1 - wie 0, aber nur Häufigkeiten grösser 0.

  • 2 - wie 0, aber nur Häufigkeiten gleich 0.

  • 3 - ein String der überhaupt vorkommenden Zeichen enthält.

  • 4 - ein String der alle nicht vorkommenden Zeichen enthält.

Anmerkung: Diese Funktion existiert ab PHP 4.0.

Zurück | Anfang | Vor
convert_cyr_string | Hoch | crc32


crc32

(PHP 4 >= 4.0.1)

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 regulär für die Integritätsprüfung übermittelter Daten verwendet.

Siehe auch: md5().

Zurück | Anfang | Vor
count_chars | Hoch | crypt


crypt

(PHP 3, PHP 4 )

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 | Anfang | Vor
crc32 | Hoch | echo


echo

(unknown)

echo -- Gibt einen oder mehrere Strings aus

Beschreibung:

echo (string arg1, string [argn]...)

Gibt alle als Parameter angegebenen Strings aus.

Echo() ist keine Funktion, sonder ein Sprach-Konstrukt. Deshalb brauchen Sie keine Klammern zu verwenden.

Beispiel 1. Echo()-Beispiel:

echo "Hallo Welt";

echo "Dieses
Beispiel
umfasst
mehrere
Zeilen.";

Anmerkung: Falls Sie mehr als einen auszugebenden Parameter angeben, dürfen Sie diese nicht in Klammern setzen.

Siehe auch:
print(),
printf() und
flush().

Zurück | Anfang | Vor
crypt | Hoch | explode


explode

(PHP 3, PHP 4 )

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 | Anfang | Vor
echo | Hoch | get_html_translation_table


get_html_translation_table

(PHP 4 >= 4.0b4)

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 Parameter (HTML_ENTITIES und HTML_SPECIALCHARS), die es ihnen ermöglichen, die gewünschte Tabelle auszuwählen und wie bei den htmlspecialchars() bzw. htmlentities()-Funktionen können Sie optional den Quote-Stil, mit dem Sie arbeiten, 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 $encoded-Variable wird jetzt "Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer". enthalten.

Mittels array_flip() können Sie die Richtung der Übersetzung umkehren.

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Der Inhalt von $original wird "Hallo & <Frau> & Krämer" sein.

Anmerkung: Diese Funktion wurde in PHP 4.0 neu hinzu gefügt.

Siehe auch htmlspecialchars(),
htmlentities(), strtr()
und array_flip().

Zurück | Anfang | Vor
explode | Hoch | get_meta_tags


get_meta_tags

(PHP 3>= 3.0.4, PHP 4 )

get_meta_tags -- Liest die Attribut-Inhalte aller Meta-Tags aus und gibt diese als Array zurück

Beschreibung:

array get_meta_tags (string filename [, int use_include_path])

Öffnet filename und untersucht diese Zeile für Zeile auf das Vorkommen von <meta>-Tags der Form

Beispiel 1. Meta-Tags Beispiel:

<meta name="author" content="Name">
<meta name="tags" content="PHP3-Dokumentation">
</head> <!-- Ende der Untersuchung -->
(Eine auf einem MAC erzeugte Datei kann nicht unter UNIX auf Meta-Tags untersucht werden, da die Zeilenenden anders sind.)

Der Wert der name-Eigenschaft wird Schlüssel, der Wert der content-Eigenschaft wird Wert des zurück gegebenen Arrays. Dadurch können Sie gewöhnliche Array-Funktionen nutzen, dieses zu durchlaufen oder einzelne Werte anzusprechen. Sonderzeichen innerhalb der name-Eigenschaft werden durch ´_´ ersetzt, der Rest wird in Kleinbuchstaben umgewandelt.

Ist use_include_path auf 1 gesetzt, wird PHP versuchen, die Datei anhand des Standard-Include-Pfades zu öffnen.

Zurück | Anfang | Vor
get_html_translation_table | Hoch | hebrev


hebrev

(PHP 3, PHP 4 )

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 | Anfang | Vor
get_meta_tags | Hoch | hebrevc


hebrevc

(PHP 3, PHP 4 )

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 | Anfang | Vor
hebrev | Hoch | htmlentities


htmlentities

(PHP 3, PHP 4 )

htmlentities -- Wandelt alle Sonderzeichen in entsprechende HTML-Codes um

Beschreibung:

string htmlentities (string string [, int quote_style])

Diese Funktion ist völlig identisch zu htmlspecialchars(), ausser dass alle Zeichen, die HTML-Code-Entsprechungen haben, in diese Codes umgewandelt werden. Wie bei htmlspecialchars() gibt es ein optionales zweites Argument, das die Behandlung von einfachen bzw. den doppelten Anführungszeichen beeinflusst. Im Modus ENT_COMPAT (default) werden nur die doppelten, im Modus ENT_QUOTES beide Arten und im Modus ENT_NOQUOTES keine Anführungszeichen umgewandelt.

Gegenwärtig wird der ISO-8859-1-Zeichensatz verwendet. Beachten Sie, dass das optionale 2. Argument erst ab PHP 3.0.17 bzw. PHP 4.0.3. verfügbar ist.

Siehe auch htmlspecialchars() und nl2br().

Zurück | Anfang | Vor
hebrevc | Hoch | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4 )

htmlspecialchars -- Diese Funktion wandelt Sonderzeichen in HTML-Codes um

Beschreibung:

string htmlspecialchars (string string [, int quote_style])

Bestimmte Zeichen haben eine spezielle Bedeutung in HTML und sollten in HTML-Code dargestellt werden, um ihre Bedeutung zu behalten. Diese Funktion liefert einen String zurück, in dem diese Darstellung / Umsetzung teilweise durchgeführt wird. Die hier vorgenommenen Umsetzungen sind nützlich für die alltägliche Web-Programmierung. Sofern Sie eine vollständige Umsetzung der HTML-Zeichen benötigen, sollten Sie statt dessen htmlentities() verwenden.

Sinnvoll beim Schutz von benutzerabhängigen Texteingaben (z.B. in Gästebuch-Formularen). Das optionale 2. Argument (Quote-Stil) beeinflusst die Behandlung der einfachen und doppelten Anführungsstriche. 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 Umsetzungen 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(). Beachten Sie auch, dass das optionale 2. Argument erst ab PHP 3.0.17 bzw. PHP 4.0.3. verfügbar ist.

Siehe auch htmlentities() und nl2br().

Zurück | Anfang | Vor
htmlentities | Hoch | implode


implode

(PHP 3, PHP 4 )

implode -- Verbindet Array-Elemente zu einem String

Beschreibung:

string implode (string glue, array pieces)

Gibt einen String zurück, dessen Inhalt allen Array-Elementen in der fortlaufenden Reihenfolge ihres Vorkommens im Array entspricht. Die Stringteile sind durch den im Parameter glue enthaltenen String verbunden.

Beispiel 1. Implode()-Beispiel:

$Trennung_durch_Doppelpunkt = implode (":", $array);

Siehe auch explode(), join() und split().

Zurück | Anfang | Vor
htmlspecialchars | Hoch | join


join

(PHP 3, PHP 4 )

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 | Anfang | Vor
implode | Hoch | levenshtein


levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1)

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 | Anfang | Vor
join | Hoch | ltrim


ltrim

(PHP 3, PHP 4 )

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 | Anfang | Vor
levenshtein | Hoch | md5


md5

(PHP 3, PHP 4 )

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 Algorithmus.

Siehe auch: crc32().

Zurück | Anfang | Vor
ltrim | Hoch | Metaphone


Metaphone

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
md5 | Hoch | nl2br


nl2br

(PHP 3, PHP 4 )

nl2br -- Fügt HTML-Zeilen-Umbrüche vor Zeilenumbrüche in Strings ein

Beschreibung:

string nl2br (string string)

Gibt den string mit einem eingefügten '<br />' vor dem Neue-Zeile-Zeichen zurück.

Siehe auch htmlspecialchars() und
htmlentities() and
wordwrap().

Zurück | Anfang | Vor
Metaphone | Hoch | Ord


Ord

(PHP 3, PHP 4 )

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 | Anfang | Vor
nl2br | Hoch | parse_str


parse_str

(PHP 3, PHP 4 )

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 gibt die Werte Variableninhalte zurück. Ist der zweite Parameter arr gegeben, werden die Variablen-Werte in diesem Array als dessen Elemente gespeichert.

Beispiel 1. Der Gebrauch von parse_str:()

$str = "erster=nichts&zweiter[]=etwas&zweiter[]=nochwas";
parse_str($str);
echo $erster;     /* gibt "nichts" aus */
echo $zweiter[0]; /* gibt "etwas" aus */
echo $zweiter[1]; /* gibt "nochwas" aus */

Zurück | Anfang | Vor
Ord | Hoch | print


print

(unknown)

print -- Ausgabe eines Strings

Beschreibung:

print (string arg)

Gibt arg aus.

Siehe auch echo(), printf() und flush().

Zurück | Anfang | Vor
parse_str | Hoch | printf


printf

(PHP 3, PHP 4 )

printf -- Gibt einen formatierten String aus

Beschreibung:

int 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 | Anfang | Vor
print | Hoch | quoted_printable_decode


quoted_printable_decode

(PHP 3>= 3.0.6, PHP 4 )

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 | Anfang | Vor
printf | Hoch | QuoteMeta


QuoteMeta

(PHP 3, PHP 4 )

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ück gegeben.

Siehe auch addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br() und
stripslashes().

Zurück | Anfang | Vor
quoted_printable_decode | Hoch | rtrim


rtrim

(PHP 3, PHP 4 )

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 | Anfang | Vor
QuoteMeta | Hoch | sscanf


sscanf

(PHP 4 >= 4.0.1)

sscanf -- Übertragt die Eingaben eines Strings 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 str-String und interpretiert ihn Anlehnung an die angegebenen format Parameter. Werden nur 2 Parameter angegeben, werden die analysierten Werte als Array zurück gegeben.

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 | Anfang | Vor
rtrim | Hoch | setlocale


setlocale

(PHP 3, PHP 4 )

setlocale -- Setzt lokale Informationen

Beschreibung:

string setlocale (string category, string locale)

Der String category enthält die Kategorie der zu ändernden Lokalitäts-Informationen:

  • LC_ALL - alle folgenden Werte

  • LC_COLLATE - für String-Vergleiche - z.Zt. noch nicht in PHP implementiert

  • LC_CTYPE - betrifft Klassifizierungen und Umwandlung, z.B. bei strtoupper()

  • LC_MONETARY - betrifft localeconv() - z.Zt. noch nicht in PHP implementiert

  • LC_NUMERIC - für das Dezimal-Trennzeichen

  • LC_TIME - betrifft Zeit und Datums-Formatierungen durch strftime()

Ist locale als Leer-String definiert, also "", werden die Werte an Hand der entsprechenden Umgebungs-Variablen gleichen Namens oder von "LANG" bestimmt.

Ist locale Null oder "0", werden keine Einstellungen verändert sondern als Ergebnis zurück gegeben.

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.

Zurück | Anfang | Vor
sscanf | Hoch | similar_text


similar_text

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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 | Anfang | Vor
setlocale | Hoch | soundex


soundex

(PHP 3, PHP 4 )

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 | Anfang | Vor
similar_text | Hoch | sprintf


sprintf

(PHP 3, PHP 4 )

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 resultiert ihre eigene Auswirkung. 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 (in alphabetischer Reihenfolge):

  1. Einem optionalen Füll-Zeichen, das den String bis rechts auffüllt. Dies kann ein Leerzeichen oder eine 0 (das Null-Zeichen) sein. Als Füllzeichen voreingestellt ist das Leerzeichen. Andere Füllzeichen können durch Voranstellung eines einfachen Anführungszeichens (') definiert werden. Beachten Sie die folgenden Beispiele.

  2. Einer optionalen Angabe der Ausrichtung, ob die Ausgabe also nach links oder nach rechts (default) ausgerichtet werden soll. Um den Text links auszurichten müssen Sie das Zeichen - angeben.

  3. Optional einem Wert für die Längen-Angabe, also der Wert für die mindestenst zurückzugebenden Zeichen.

  4. Optional einem Wert für die Anzahl der auszugebenden Nachkomma-Stellen. Dieser Wert hat nur Einfluss auf Werte vom Typ "double" (eine weitere hilfreiche Funktion für die 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 ausgegeben.
    f - das Argument wird als "double" angesehen und eine Fließkomma-Zahl ausgegeben.
    o - das Argument wird als Integer angesehen und und als Oktalwert ausgegeben.
    s - das Argument wird als String angesehen und 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).

Siehe auch: printf(),
sscanf(), fscanf() und
number_format().

Beispiele:

Beispiel 1. Sprintf(): Null-gefüllte Integer-Werte

$isodatum = sprintf ("%04d-%02d-%02d", $jahr, $monat, $tag);

Beispiel 2. Sprintf(): Integer- zu Binärwert

$wert = 155;
$binaer = sprintf ("%b", $wert);
echo ("<br> $binaer <br>");
// gibt 10011011 aus

Beispiel 3. Sprintf(): Währungsformatierung

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money wird "123.1" ausgeben
$formatiert = sprintf ("%01.2f", $money);
// echo $formatiert wird "123.10" ausgeben

Zurück | Anfang | Vor
soundex | Hoch | strcasecmp


strcasecmp

(PHP 3>= 3.0.2, PHP 4 )

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 | Anfang | Vor
sprintf | Hoch | strchr


strchr

(PHP 3, PHP 4 )

strchr -- Findet das erste Vorkommen eines Zeichens

Beschreibung:

string strchr (string haystack, string needle)

Diese Funktion ist ein Alias zu strstr() und funktioniert genau wie dort beschrieben.

Zurück | Anfang | Vor
strcasecmp | Hoch | strcmp


strcmp

(PHP 3, PHP 4 )

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 | Anfang | Vor
strchr | Hoch | strcspn


strcspn

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
strcmp | Hoch | strip_tags


strip_tags

(PHP 3>= 3.0.8, PHP 4 >= 4.0b2)

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 | Anfang | Vor
strcspn | Hoch | StripCSlashes


StripCSlashes

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
strip_tags | Hoch | StripSlashes


StripSlashes

(PHP 3, PHP 4 )

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 | Anfang | Vor
StripCSlashes | Hoch | stristr


stristr

(PHP 3>= 3.0.6, PHP 4 )

stristr -- Wie strstr() 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ück gegeben.

Ist needle kein String, wird er in einen Integer-Wert umgesetzt. Dies ASCII-Entsprechung dieses Wertes wird dann als zu suchendes Zeichen angesehen.

Siehe auch strchr(),
strrchr(), substr() und
ereg().

Zurück | Anfang | Vor
StripSlashes | Hoch | strlen


strlen

(PHP 3, PHP 4 )

strlen -- Ermitteln der String-Länge

Beschreibung:

int strlen (string str)

Gibt die Länge der Zeichenkette string zurück.

Zurück | Anfang | Vor
stristr | Hoch | strnatcmp


strnatcmp

(PHP 4 >= 4.0RC2)

strnatcmp -- String-Vergleich unter Verwendung einer "natürlichen Ordnung"

Beschreibung:

int strnatcmp (string str1, string str2)

Diese Funktion implemetiert einen Vergleich, der alphanumerische Zeichen "menschlich" einordnet (auch "natürliche Ordnung" genannt). Der Unterschied zwischen dieser und der regulären String-Sortierung eines Computer (unter Verwendung von 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
)

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.

Dieser Vergleich unterscheidet Groß- und Kleinschreibung.

Siehe auch ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strnatcasecmp(),
strstr(), natsort() und
natcasesort() .

Zurück | Anfang | Vor
strlen | Hoch | strnatcasecmp


strnatcasecmp

(PHP 4 >= 4.0RC2)

strnatcasecmp -- String-Vergleich "natürlicher Ordnung" ohne Unterschesidung 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 | Anfang | Vor
strnatcmp | Hoch | strncmp


strncmp

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
strnatcasecmp | Hoch | str_pad


str_pad

(PHP 4 >= 4.0.1)

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_type 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 | Anfang | Vor
strncmp | Hoch | strpos


strpos

(PHP 3, PHP 4 )

strpos -- Ermitteln des ersten Vorkommens innerhalb eines Strings

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 | Anfang | Vor
str_pad | Hoch | strrchr


strrchr

(PHP 3, PHP 4 )

strrchr -- Findet das letzte Vorkommen eines Zeichens innerhalb einer Zeichenkette

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 | Anfang | Vor
strpos | Hoch | str_repeat


str_repeat

(PHP 4 >= 4.0b4)

str_repeat -- Wiederholung eine String-Ausgabe

Beschreibung:

string str_repeat (string input, int multiplier)

Die Ausgabe von input_str wird multiplier mal wiederholt. Multiplier muss grösser als 0 sein.

Beispiel 1. Str_repeat()-Beispiel:

echo str_repeat ("-=", 10);

Es wird "-=-=-=-=-=-=-=-=-=-=" ausgegeben.

Anmerkung: Verfügbar ab PHP 4.0.

Zurück | Anfang | Vor
strrchr | Hoch | strrev


strrev

(PHP 3, PHP 4 )

strrev -- Umdrehen eines Strings

Beschreibung:

string strrev (string string)

Dreht die Schreibweise von string um.

Zurück | Anfang | Vor
str_repeat | Hoch | strrpos


strrpos

(PHP 3, PHP 4 )

strrpos -- Findet letztes Vorkommen eines Zeichens in einem String

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 | Anfang | Vor
strrev | Hoch | strspn


strspn

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
strrpos | Hoch | strstr


strstr

(PHP 3, PHP 4 )

strstr -- Findet das erste Vorkommen eines Strings

Beschreibung:

string strstr (string haystack, string needle)

Es wird alles von haystack zurück gegeben ab der ersten Fundstelle von needle bis zum Ende.

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.

Diese Funktion unterscheidet zwischen Groß- und Kleinschreibung. Ist keine Unterscheidung gewünscht / erforderlich, sollten Sie stristr() verwenden.

Beispiel 1. Strstr()-Beispiel:

$email = 'sterling@designmultimedia.com';
$domain = strstr ($email, '@');
print $domain; // gibt @designmultimedia.com zurück

Siehe auch stristr(),
strrchr(), substr() und
ereg().

Zurück | Anfang | Vor
strspn | Hoch | strtok


strtok

(PHP 3, PHP 4 )

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 | Anfang | Vor
strstr | Hoch | strtolower


strtolower

(PHP 3, PHP 4 )

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 | Anfang | Vor
strtok | Hoch | strtoupper


strtoupper

(PHP 3, PHP 4 )

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 | Anfang | Vor
strtolower | Hoch | str_replace


str_replace

(PHP 3>= 3.0.6, PHP 4 )

str_replace -- Ersetzt alle Vorkommen eines Strings in einem anderen String

Beschreibung:

string str_replace (string needle, string str, string haystack)

Diese Funktion ersetzt alle Vorkommen von needle innerhalb der Zeichenkette haystack durch den String str. Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion den Vorzug vor ereg_replace() geben.

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 ereg_replace() und strtr().

Zurück | Anfang | Vor
strtoupper | Hoch | strtr


strtr

(PHP 3, PHP 4 )

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 | Anfang | Vor
str_replace | Hoch | substr


substr

(PHP 3, PHP 4 )

substr -- Gibt einen Teilstring zurück

Beschreibung:

string substr (string string, int start [, int length])

Substr() gibt den Teil von string zurück, der durch die start und length Parameter 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.

Beispiele:

$rest = substr ("abcdef", 1);    // gibt "bcdef" zurück
$rest = substr ("abcdef", 1, 3); // gibt "bcd" zurück

Ist start negativ, gibt er den Beginn-Wert ab Ende des Strings an (also rückwärts gezählt).

Beispiele:

$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
$rest = substr ("abcdef",  1, -1); // gibt "bcde" zurück
$rest = substr ("abcdef",  4, -4); // gibt "" zurück (nichts)
$rest = substr ("abcdef",  7,  1); // gibt "" zurück (nichts)
$rest = substr ("abcdef",  7, -4); // gibt "" zurück (nichts)
$rest = substr ("abcdef",  4,  4); // gibt "ef" zurück
$rest = substr ("abcdef", -2,  4); // gibt "ef" zurück
$rest = substr ("abcdef", -5, -4); // gibt "b" zurück

Siehe auch strrchr() und ereg().

Zurück | Anfang | Vor
strtr | Hoch | substr_count


substr_count

(PHP 4 >= 4.0RC2)

substr_count -- Ermittelt die Häufigkeit des Vorkommens einer Zeichenkette in einem String

Beschreibung:

int substr_count (string haystrack, string needle)

Die Funktion substr_count() ermittelt, wie oft needle in dem String haystack vorkommt.

Beispiel 1. Substr_count()-Beispiel:

print substr_count("Dieser Test ist Mist", "ist"); // ergibt 2

Diese Funktion steht ab PHP 4.0.0 zur Verfügung.

Zurück | Anfang | Vor
substr | Hoch | substr_replace


substr_replace

(PHP 4 >= 4.0b4)

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 | Anfang | Vor
substr_count | Hoch | trim


trim

(PHP 3, PHP 4 )

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 | Anfang | Vor
substr_replace | Hoch | ucfirst


ucfirst

(PHP 3, PHP 4 )

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 | Anfang | Vor
trim | Hoch | ucwords


ucwords

(PHP 3>= 3.0.3, PHP 4 )

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 | Anfang | Vor
ucfirst | Hoch | wordwrap


wordwrap

(PHP 4 >= 4.0.2)

wordwrap -- Zeilenumbruch eines Strings an einer angegebenen Stelle unter Verwendung eines angegebenen Trennzeichens

Beschreibung:

string wordwrap (string str [, int width [, string break [, int cut]]])

Bricht den String str an der mittels width angegebenen Position in die nächste Zeile um. Der Umbruch geschieht mit dem break Parameter.

Die Funktion wordwrap() bricht selbst an der Spalte 75 unter Verwendung des Steuerzeichens '\n' (neue Zeile) um, wenn die optionalen Parameter width und / oder break nicht angegeben werden.

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 es mitten drin umgebrochen (siehe zweites Beispiel)

Beispiel 1. Wordwrap()-Beispiel:

$text = "Der schnelle braune Fuchs springt über den blöden Hund.";
$neuertext = wordwrap( $text, 20 );
echo "$neuertext\n";

Dieses Beispiel gibt aus:

Der schnelle braune
Fuchs springt über den blöden 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 W
oooooooo
ooort.

Siehe auch nl2br().

Zurück | Anfang | Vor
ucwords | Hoch | Sybase functions


Sybase functions

PHP Handbuch
Zurück Vor

LXXV. Sybase functions

Inhaltsverzeichnis
sybase_affected_rows — get number of affected rows in last query
sybase_close — close Sybase connection
sybase_connect — open Sybase server connection
sybase_data_seek — move internal row pointer
sybase_fetch_array — fetch row as array
sybase_fetch_field — get field information
sybase_fetch_object — fetch row as object
sybase_fetch_row — get row as enumerated array
sybase_field_seek — set field offset
sybase_free_result — free 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 — get number of fields in result
sybase_num_rows — get number of rows in result
sybase_pconnect — open persistent Sybase connection
sybase_query — send Sybase query
sybase_result — get result data
sybase_select_db — select Sybase database
Zurück | Anfang | Vor
wordwrap | Hoch | sybase_affected_rows


sybase_affected_rows

(PHP 3>= 3.0.6, PHP 4 )

sybase_affected_rows -- get number of affected rows in last query

Description

int sybase_affected_rows ([int link_identifier])

Returns: The number of affected rows by the last query.

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.

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.

Zurück | Anfang | Vor
Sybase functions | Hoch | sybase_close


sybase_close

(PHP 3, PHP 4 )

sybase_close -- close Sybase connection

Description

bool sybase_close (int link_identifier)

Returns: true on success, false on error

sybase_close() closes the link to a Sybase database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

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(), sybase_pconnect().

Zurück | Anfang | Vor
sybase_affected_rows | Hoch | sybase_connect


sybase_connect

(PHP 3, PHP 4 )

sybase_connect -- open Sybase server connection

Description

int sybase_connect (string servername, string username, string password [, string charset])

Returns: A positive Sybase link identifier on success, or false on error.

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().

See also sybase_pconnect(), sybase_close().

Zurück | Anfang | Vor
sybase_close | Hoch | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4 )

sybase_data_seek -- move internal row pointer

Description

bool sybase_data_seek (int result_identifier, int row_number)

Returns: true on success, false on failure

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specifyed row number. The next call to sybase_fetch_row() would return that row.

See also: sybase_data_seek().

Zurück | Anfang | Vor
sybase_connect | Hoch | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4 )

sybase_fetch_array -- fetch row as array

Description

array sybase_fetch_array (int 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.

For further details, also see sybase_fetch_row()

Zurück | Anfang | Vor
sybase_data_seek | Hoch | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4 )

sybase_fetch_field -- get field information

Description

object sybase_fetch_field (int 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 retreived by sybase_fetch_field() is retreived.

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 | Anfang | Vor
sybase_fetch_array | Hoch | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4 )

sybase_fetch_object -- fetch row as object

Description

int sybase_fetch_object (int result)

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_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).

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 | Anfang | Vor
sybase_fetch_field | Hoch | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4 )

sybase_fetch_row -- get row as enumerated array

Description

array sybase_fetch_row (int 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_rows() would return the next row in the result set, or false if there are no more rows.

See also: sybase_fetch_array(),
          sybase_fetch_object(),
          sybase_data_seek(),
          sybase_fetch_lengths(), and
          sybase_result().

Zurück | Anfang | Vor
sybase_fetch_object | Hoch | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4 )

sybase_field_seek -- set field offset

Description

int sybase_field_seek (int 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.

See also: sybase_fetch_field().

Zurück | Anfang | Vor
sybase_fetch_row | Hoch | sybase_free_result


sybase_free_result

(PHP 3, PHP 4 )

sybase_free_result -- free result memory

Description

bool sybase_free_result (int 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 | Anfang | Vor
sybase_field_seek | Hoch | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4 )

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.

Zurück | Anfang | Vor
sybase_free_result | Hoch | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4 )

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 | Anfang | Vor
sybase_get_last_message | Hoch | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4 )

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 | Anfang | Vor
sybase_min_client_severity | Hoch | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4 )

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 | Anfang | Vor
sybase_min_error_severity | Hoch | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4 )

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 | Anfang | Vor
sybase_min_message_severity | Hoch | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4 )

sybase_num_fields -- get number of fields in result

Description

int sybase_num_fields (int result)

sybase_num_fields() returns the number of fields in a result set.

See also:
sybase_db_query(),
sybase_query(),
sybase_fetch_field(),
sybase_num_rows().

Zurück | Anfang | Vor
sybase_min_server_severity | Hoch | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4 )

sybase_num_rows -- get number of rows in result

Description

int sybase_num_rows (int result)

sybase_num_rows() returns the number of rows in a result set.

See also:
sybase_db_query(),
sybase_query() and,
sybase_fetch_row().

Zurück | Anfang | Vor
sybase_num_fields | Hoch | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4 )

sybase_pconnect -- open persistent Sybase connection

Description

int sybase_pconnect (string servername, string username, string password [, string charset])

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'.

Zurück | Anfang | Vor
sybase_num_rows | Hoch | sybase_query


sybase_query

(PHP 3, PHP 4 )

sybase_query -- send Sybase query

Description

int sybase_query (string query, int link_identifier)

Returns: A positive Sybase result identifier on success, or false on error.

sybase_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.

See also:
sybase_db_query(),
sybase_select_db(), and
sybase_connect().

Zurück | Anfang | Vor
sybase_pconnect | Hoch | sybase_result


sybase_result

(PHP 3, PHP 4 )

sybase_result -- get result data

Description

string sybase_result (int 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 | Anfang | Vor
sybase_query | Hoch | sybase_select_db


sybase_select_db

(PHP 3, PHP 4 )

sybase_select_db -- select Sybase database

Description

bool sybase_select_db (string database_name, int link_identifier)

Returns: true on success, false on error

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.

Every subsequent call to sybase_query() will be made on the active database.

See also:
    sybase_connect(),
    sybase_pconnect(), and
    sybase_query()

Zurück | Anfang | Vor
sybase_result | Hoch | URL functions


URL functions

PHP Handbuch
Zurück Vor

LXXVI. URL functions

Inhaltsverzeichnis
base64_decode — dekodiert Daten mit MIME base64
base64_encode — Kodiert Daten MIME base64
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 | Anfang | Vor
sybase_select_db | Hoch | base64_decode


base64_decode

(PHP 3, PHP 4 )

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 | Anfang | Vor
URL functions | Hoch | base64_encode


base64_encode

(PHP 3, PHP 4 )

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 | Anfang | Vor
base64_decode | Hoch | parse_url


parse_url

(PHP 3, PHP 4 )

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 | Anfang | Vor
base64_encode | Hoch | rawurldecode


rawurldecode

(PHP 3, PHP 4 )

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 | Anfang | Vor
parse_url | Hoch | rawurlencode


rawurlencode

(PHP 3, PHP 4 )

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 | Anfang | Vor
rawurldecode | Hoch | urldecode


urldecode

(PHP 3, PHP 4 )

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 | Anfang | Vor
rawurlencode | Hoch | urlencode


urlencode

(PHP 3, PHP 4 )

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-Formulart 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 | Anfang | Vor
urldecode | Hoch | Variablen-Funktionen


Variablen-Funktionen

PHP Handbuch
Zurück Vor

LXXVII. Variablen-Funktionen

Inhaltsverzeichnis
doubleval — Konvertiert einen Wert nach double
empty — Prüft, ob eine Variable einen Wert enthält
gettype — Liefert den Datentyp einer Variablen
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_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_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_string — Prüft, ob Variable vom Typ string ist
isset — Prüft die Existenz einer Variablen
print_r — Giebt 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
Zurück | Anfang | Vor
urlencode | Hoch | doubleval


doubleval

(PHP 3, PHP 4 )

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 | Anfang | Vor
Variablen-Funktionen | Hoch | empty


empty

(unknown)

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 | Anfang | Vor
doubleval | Hoch | gettype


gettype

(PHP 3, PHP 4 )

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 | Anfang | Vor
empty | Hoch | intval


intval

(PHP 3, PHP 4 )

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 | Anfang | Vor
gettype | Hoch | is_array


is_array

(PHP 3, PHP 4 )

is_array -- Prüft, ob Variable ein Array ist

Beschreibung:

int 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 | Anfang | Vor
intval | Hoch | is_bool


is_bool

(PHP 4 >= 4.0b4)

is_bool -- Prüft, ob eine Variable vom Typ bool ist

Beschreibung:

int is_bool (mixed var)

Liefert true, wenn var vom Typ bool ist.

Zurück | Anfang | Vor
is_array | Hoch | is_double


is_double

(PHP 3, PHP 4 )

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 | Anfang | Vor
is_bool | Hoch | is_float


is_float

(PHP 3, PHP 4 )

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 | Anfang | Vor
is_double | Hoch | is_int


is_int

(PHP 3, PHP 4 )

is_int -- Prüft, ob eine Variable vom Typ int ist

Beschreibung:

int 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 | Anfang | Vor
is_float | Hoch | is_integer


is_integer

(PHP 3, PHP 4 )

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 | Anfang | Vor
is_int | Hoch | is_long


is_long

(PHP 3, PHP 4 )

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 | Anfang | Vor
is_integer | Hoch | is_numeric


is_numeric

(PHP 4 >= 4.0RC1)

is_numeric -- Finds whether a variable is a number or a numeric string

Description

int 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 | Anfang | Vor
is_long | Hoch | is_object


is_object

(PHP 3, PHP 4 )

is_object -- Prüft, ob eine Variable vom Typ object ist

Beschreibung:

int 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 | Anfang | Vor
is_numeric | Hoch | is_real


is_real

(PHP 3, PHP 4 )

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 | Anfang | Vor
is_object | Hoch | is_resource


is_resource

(PHP 4 >= 4.0b4)

is_resource -- Prüft, ob eine Variable vom Typ resource ist

Beschreibung:

int 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 | Anfang | Vor
is_real | Hoch | is_string


is_string

(PHP 3, PHP 4 )

is_string -- Prüft, ob Variable vom Typ string ist

Beschreibung:

int 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 | Anfang | Vor
is_resource | Hoch | isset


isset

(unknown)

isset -- Prüft die Existenz einer Variablen

Beschreibung:

int isset (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 | Anfang | Vor
is_string | Hoch | print_r


print_r

(PHP 4 )

print_r -- Giebt Variablen-Informationen in lesbarer Form aus

Beschreibung:

void print_r (mixed expression)

Diese Funktion zeigt Informationen über eine Variable oder einen Ausdruck in lesbarer Form an. Einfache Werte werden direkt ausgegeben, Arrays und Objekte werden dagegen als eingerückte Schlüssel / Wert-Paare ausgegeben.

print_r() ähnelt var_dump(), giebt aber Typinformationen nur bei Arrays und Objekten aus.

<?php
$a = array (1, 2, array ("a", "b", "c"));
print_r ($a);
?>

Warnung

Diese Funktion ist nicht in der Lage, zyklische Referenzen aufzulösen, d.h. die Ausgabe eines Arrays oder Objektes, das sich selbst enthält, wie z.B. print_r($GLOBALS), wird niemals beendet.

Zurück | Anfang | Vor
isset | Hoch | serialize


serialize

(PHP 3>= 3.0.5, PHP 4 )

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 | Anfang | Vor
print_r | Hoch | settype


settype

(PHP 3, PHP 4 )

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 | Anfang | Vor
serialize | Hoch | strval


strval

(PHP 3, PHP 4 )

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 | Anfang | Vor
settype | Hoch | unserialize


unserialize

(PHP 3>= 3.0.5, PHP 4 )

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 | Anfang | Vor
strval | Hoch | unset


unset

(unknown)

unset -- Löschen einer Variablen

Beschreibung:

int unset (mixed var)

unset() giebt eine Variable oder ein Array-Element vollständig frei.

Beispiel 1. Unset() example

unset ($foo);
unset ($bar['quux']);

Siehe auch isset() und empty().

Zurück | Anfang | Vor
unserialize | Hoch | var_dump


var_dump

(PHP 3>= 3.0.5, PHP 4 )

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 | Anfang | Vor
unset | Hoch | WDDX functions


WDDX functions

PHP Handbuch
Zurück Vor

LXXVIII. WDDX functions

Diese Funktionen arbeiten mit WDDX zusammen.

Es ist zu beachten, dass alle Funktionen, die Variablen serialisieren, immer das erste Element eines Arrays verwenden um festzustellen ob der Array in einen Array oder eine 'Structure' serialisiert wird. Wenn das erste Element eine String Schlüssel hat, dann wir er in eine 'Structure' serialisiert, andernfalls in einen Array.

Beispiel 1. Einen einzelnen String serialisieren

<?php
print wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

dieses Beispiel erzeugt:

<wddxPacket version='0.9'><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='0.9'><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_serialize_value — Serialisiert einen einzelnen Wert in ein WDDX Packet
wddx_serialize_vars — Serialisiert variablen in WDDX Pakete
wddx_packet_start — Beginnt ein neue WDDX Packet mit einer 'Structure' darin
wddx_packet_end — Schliesst das WDDX Packet mit der angegebenen ID
wddx_add_vars — Fügt dem WDDX Packet mit der ID Werte hinzu
wddx_deserialize — Deserialisiert ein WDDX Packet
Zurück | Anfang | Vor
var_dump | Hoch | wddx_serialize_value


wddx_serialize_value

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

wddx_serialize_value -- Serialisiert einen einzelnen Wert in ein WDDX Packet

Beschreibung

string wddx_serialize_value (mixed wert [, string kommentar])

wddx_serialize_value() wird verwendet, um einen einzelnen Wert in ein WDDX Packet zu serialisieren. Übergeben wird der Wert in wert, und ein optionaler kommentar der im Header des Packets angegeben wird und gibt das WDDX Paket zurück.

Zurück | Anfang | Vor
WDDX functions | Hoch | wddx_serialize_vars


wddx_serialize_vars

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

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', das eine serialsierte Representation der übergebenen Variablen.

wddx_serialize_vars() übernimmt eine variable Zahl an Argumenten. Jedes kann entweder eine String Benennung, eine Variable oder ein Array, der Strings enthält, die die Variablen benennen, oder einen weiteren Array, etc.

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='0.9'><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 | Anfang | Vor
wddx_serialize_value | Hoch | wddx_packet_start


wddx_packet_start

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

wddx_packet_start -- Beginnt ein neue WDDX Packet mit einer 'Structure' darin

Beschreibung

int wddx_packet_start ([string kommentar])

wddx_packet_start() wird verwendet um ein neues WDDX Paket beginnen um die Variablen nachhinein zu ergänzen. Ein optionaler kommentar String kann angegeben werden. Es wird eine Packet ID zurückgegeben, die in später in Funktionen verwendet werden kann. Desweiteren wird automatisch 'Structure' Definition erzeugt um die Variablen aufnehmen zu können.

Zurück | Anfang | Vor
wddx_serialize_vars | Hoch | wddx_packet_end


wddx_packet_end

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

wddx_packet_end -- Schliesst das WDDX Packet mit der angegebenen ID

Beschreibung

string wddx_packet_end (int packet_id)

wddx_packet_end() schliesst das WDDX Packet, dass mit mit packet_id identifiziert wird und gibt einen String mit dem Packet zurück.

Zurück | Anfang | Vor
wddx_packet_start | Hoch | wddx_add_vars


wddx_add_vars

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

wddx_add_vars -- Fügt dem WDDX Packet mit der ID Werte hinzu

Beschreibung

wddx_add_vars (int packet_id, mixed name_var [, mixed ...])

wddx_add_vars() wird verwendet um die übergebenen Werte zu serialisiern und diese an das Packet anzuhängen, das mit packet_id identifiziert wird. Die Werteübergabe funktioniert genauso wie bei wddx_serialize_vars().

Zurück | Anfang | Vor
wddx_packet_end | Hoch | wddx_deserialize


wddx_deserialize

(PHP 3>= 3.0.7, PHP 4 >= 4.0b2)

wddx_deserialize -- Deserialisiert ein WDDX Packet

Beschreibung

mixed wddx_deserialize (string packet)

wddx_deserialized() übernimmt einen packet String and deserialisiert es. Es wird entweder ein String, eine Nummer, oder Array als Ergebnis zurückgegeben. 'Structures' werden in assoziative Arrays deserialisiert.

Zurück | Anfang | Vor
wddx_add_vars | Hoch | XML parser functions


XML parser functions

PHP Handbuch
Zurück Vor

LXXIX. XML parser functions

Introduction

About XML

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/.

Installation

This extension uses expat, which can be found at http://www.jclark.com/xml/. 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://www.guardian.no/~ssb/phpxml.html.

Note that if you are using Apache-1.3.7 or later, you already have the required expat library. Simply configure PHP using --with-xml (without any additional path) and it will automatically use the expat library built into Apache.

On UNIX, run configure with the --with-xml option. The expat library should be installed somewhere your compiler can find it. If you compile PHP as a module for Apache 1.3.9 or later, PHP will automatically use the bundled expat library from Apache. You may need to set CPPFLAGS and LDFLAGS in your environment before running configure if you have installed expat somewhere exotic.

Build PHP. Tada! That should be it.

About This Extension

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.

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.

Some Examples

Here are some example PHP scripts parsing XML documents.

XML Element Structure Example

This first example displays the stucture of the start elements in a document with indentation.

Beispiel 1. Show XML Element Structure

$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs) {
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        print "  ";
    }
    print "$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.

$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "<$htmltag>";
    }
}

function endElement($parser, $name) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "</$htmltag>";
    }
}

function characterData($parser, $data) {
    print $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

$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) {
    print "&lt;<font color=\"#0000cc\">$name</font>";
    if (sizeof($attribs)) {
        while (list($k, $v) = each($attribs)) {
            print " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    print "&gt;";
}

function endElement($parser, $name) {
    print "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data) {
    print "<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");
}

print "<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)));
    }
}
print "</pre>";
print "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;
 <sect1 id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php print 'Hi!  This is PHP version '.phpversion(); ?>
  </para>
 </sect1>
</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 print "This is some more PHP code being executed."; ?>
</foo>

Inhaltsverzeichnis
xml_parser_create — create an XML parser
xml_set_object — Use XML Parser within an object
xml_set_element_handler — set up start and end element handlers
xml_set_character_data_handler — set up character data handler
xml_set_processing_instruction_handler — Set up processing instruction (PI) handler
xml_set_default_handler — set up default handler
xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler
xml_set_notation_decl_handler — set up notation declaration handler
xml_set_external_entity_ref_handler — set up external entity reference handler
xml_parse — start parsing an XML document
xml_get_error_code — get XML parser error code
xml_error_string — get XML parser error string
xml_get_current_line_number — get current line number for an XML parser
xml_get_current_column_number — Get current column number for an XML parser
xml_get_current_byte_index — get current byte index for an XML parser
xml_parse_into_struct — Parse XML data into an array structure
xml_parser_free — Free an XML parser
xml_parser_set_option — set options in an XML parser
xml_parser_get_option — get options from an XML parser
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
Zurück | Anfang | Vor
wddx_deserialize | Hoch | xml_parser_create


xml_parser_create

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_create -- create an XML parser

Description

int xml_parser_create ([string encoding])

encoding (optional)

Which character encoding the parser should use. The following character encodings are supported:

ISO-8859-1 (default)
US-ASCII
UTF-8

This function creates an XML parser and returns a handle for use by other XML functions. Returns false on failure.

Zurück | Anfang | Vor
XML parser functions | Hoch | xml_set_object


xml_set_object

(PHP 4 >= 4.0b4)

xml_set_object -- Use XML Parser within an object

Description

void xml_set_object (int 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.

<?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 | Anfang | Vor
xml_parser_create | Hoch | xml_set_element_handler


xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_element_handler -- set up start and end element handlers

Description

int xml_set_element_handler (int parser, string startElementHandler, string endElementHandler)

Sets the element handler functions for the XML parser parser. startElementHandler and endElementHandler are strings containing the names of functions that must exist when xml_parse() is called for parser.

The function named by startElementHandler must accept three parameters:

startElementHandler (int 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 endElementHandler must accept two parameters:

endElementHandler (int 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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_object | Hoch | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_character_data_handler -- set up character data handler

Description

int xml_set_character_data_handler (int parser, string 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 (int 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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_element_handler | Hoch | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler

Description

int xml_set_processing_instruction_handler (int parser, string 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 (int 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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_character_data_handler | Hoch | xml_set_default_handler


xml_set_default_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_default_handler -- set up default handler

Description

int xml_set_default_handler (int parser, string 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 (int 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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_processing_instruction_handler | Hoch | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Description

int xml_set_unparsed_entity_decl_handler (int parser, string 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 name {publicId | systemId}
        NDATA notationName>

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 (int parser, string entityName, string base, string systemId, string publicId, string notationName)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

entityName

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.

systemId

System identifier for the external entity.

publicId

Public identifier for the external entity.

notationName

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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_default_handler | Hoch | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_notation_decl_handler -- set up notation declaration handler

Description

int xml_set_notation_decl_handler (int parser, string 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
     name {systemId |
     publicId}>
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 (int parser, string notationName, string base, string systemId, string publicId)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

notationName

This is the notation's name, as per the notation format described above.

base

This is the base for resolving the system identifier (systemId) of the notation declaration. Currently this parameter will always be set to an empty string.

systemId

System identifier of the external notation declaration.

publicId

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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_unparsed_entity_decl_handler | Hoch | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3>= 3.0.6, PHP 4 )

xml_set_external_entity_ref_handler -- set up external entity reference handler

Description

int xml_set_external_entity_ref_handler (int parser, string 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.

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.

int handler (int parser, string openEntityNames, string base, string systemId, string publicId)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

openEntityNames

The second parameter, openEntityNames, 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 (systemid) of the external entity. Currently this parameter will always be set to an empty string.

systemId

The fourth parameter, systemId, is the system identifier as specified in the entity declaration.

publicId

The fifth parameter, publicId, 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.

There is currently no support for object/method handlers. See xml_set_object() for using the XML parser within an object.

Zurück | Anfang | Vor
xml_set_notation_decl_handler | Hoch | xml_parse


xml_parse

(PHP 3>= 3.0.6, PHP 4 )

xml_parse -- start parsing an XML document

Description

int xml_parse (int parser, string data [, int isFinal])

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 isFinal parameter is set and true when the last data is parsed.

isFinal (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 | Anfang | Vor
xml_set_external_entity_ref_handler | Hoch | xml_get_error_code


xml_get_error_code

(PHP 3>= 3.0.6, PHP 4 )

xml_get_error_code -- get XML parser error code

Description

int xml_get_error_code (int 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.

Zurück | Anfang | Vor
xml_parse | Hoch | xml_error_string


xml_error_string

(PHP 3>= 3.0.6, PHP 4 )

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 code, or false if no description was found.

Zurück | Anfang | Vor
xml_get_error_code | Hoch | xml_get_current_line_number


xml_get_current_line_number

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_line_number -- get current line number for an XML parser

Description

int xml_get_current_line_number (int 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 | Anfang | Vor
xml_error_string | Hoch | xml_get_current_column_number


xml_get_current_column_number

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_column_number -- Get current column number for an XML parser

Description

int xml_get_current_column_number (int 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 | Anfang | Vor
xml_get_current_line_number | Hoch | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3>= 3.0.6, PHP 4 )

xml_get_current_byte_index -- get current byte index for an XML parser

Description

int xml_get_current_byte_index (int 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 | Anfang | Vor
xml_get_current_column_number | Hoch | xml_parse_into_struct


xml_parse_into_struct

(PHP 3>= 3.0.8, PHP 4 )

xml_parse_into_struct -- Parse XML data into an array structure

Description

int xml_parse_into_struct (int 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 embeded inside a para tag, and then we parse this an print out the structures generated:

$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 1. 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 2. parsemoldb.php - parses moldb.xml into and 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 | Anfang | Vor
xml_get_current_byte_index | Hoch | xml_parser_free


xml_parser_free

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_free -- Free an XML parser

Description

string xml_parser_free (int 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 | Anfang | Vor
xml_parse_into_struct | Hoch | xml_parser_set_option


xml_parser_set_option

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_set_option -- set options in an XML parser

Description

int xml_parser_set_option (int 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 | Anfang | Vor
xml_parser_free | Hoch | xml_parser_get_option


xml_parser_get_option

(PHP 3>= 3.0.6, PHP 4 )

xml_parser_get_option -- get options from an XML parser

Description

mixed xml_parser_get_option (int 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 | Anfang | Vor
xml_parser_set_option | Hoch | utf8_decode


utf8_decode

(PHP 3>= 3.0.6, PHP 4 )

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 utf8_encode() for an explaination of UTF-8 encoding.

Zurück | Anfang | Vor
xml_parser_get_option | Hoch | utf8_encode


utf8_encode

(PHP 3>= 3.0.6, PHP 4 )

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 Unicodefor 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 | Anfang | Vor
utf8_decode | Hoch | XSLT functions


XSLT functions

PHP Handbuch
Zurück Vor

LXXX. XSLT functions

Einführung

About XSLT and Sablotron

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.

Installation

Die Erweiterung verwendet Sabloton und expat, wobei beide auf http://www.gingerall.com/ zu finden sind. Es werden sowohl Binaries, wie auch die Quelldateien angeboten.

Die Erweiterung ist unter UNIX mit dem Befehl configure und den Optionen --with-sablot und --enable-sablot-errors-descriptive einzubinden. Die Sablotron Library sollte so auf dem Server installiert sein, dass sie der Compiler finden kann.

Über diese Erweiterung

Die PHP Erweiterung bindet Sablotron von Ginger Alliance in PHP ein. Dieses Toolkit erlaubt die Transformation von XML Dokumenten in andere XML Dokumente, HTML und andere Formate. Die Erweiterung bietet standardiesierte und portable Template Mechanismen zur Trennung von Daten und Design bei Websites.

Inhaltsverzeichnis
xslt_closelog — Löschen der Log-Datei zu einer gegebenen Sablotron Instanz
xslt_create — Einen neuen XSL processor erzeugen.
xslt_errno — Gibt die aktuelle Fehlernummer zurück
xslt_error — Gibt den aktuellen Fehlerstring zurück.
xslt_fetch_result — Ruft einen (benannte) Resultatspeich ab
xslt_free — Freigabe eines XSLT Prozessors
xslt_openlog — Benennen einer Log-Datei für XSLT Prozessor-Meldungen
xslt_output_begintransform — unknown
xslt_output_endtransform — unknown
xslt_output_process — unknown
xslt_run — Ein XSLT Stylesheet einer XML Datei zuweisen.
xslt_set_sax_handler — Setzen des SAX handlers für einen XSLT Prozessor
xslt_transform — unknown
Zurück | Anfang | Vor
utf8_encode | Hoch | xslt_closelog


xslt_closelog

(PHP 4 >= 4.0.3)

xslt_closelog -- Löschen der Log-Datei zu einer gegebenen Sablotron Instanz

Beschreibung

bool xslt_closelog (resource xh)

xh

Eine Referenz zum XSLT Parser.

Die Funktion gibt FALSE zurück, wenn parser nicht auf einen gültigen parser verweist, oder das Schliessen der Log-Datei fehlgeschlagen ist. Ansonsten wird TRUE zurückgegeben.

Zurück | Anfang | Vor
XSLT functions | Hoch | xslt_create


xslt_create

(PHP 4 >= 4.0.3)

xslt_create -- Einen neuen XSL processor erzeugen.

Beschreibung

resource xslt_create (void);

Die Funktion gibt einen handle eines neuen XSL Prozessors zurück. Dieser handle wird für alle folgenden Aufrufe von XSL Funktionen zu verwenden sein.

Zurück | Anfang | Vor
xslt_closelog | Hoch | 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 XSL Prozessor zurück. Ist kein handle gegeben, so wird die Fehlernummer des zuletzt irgendwo aufgetretenen Fehlers zurückgegeben.

Zurück | Anfang | Vor
xslt_create | Hoch | 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 XSL Prozessor zurück. Ist kein handle gegeben, so wird die Fehlerstring des zuletzt irgendwo aufgetretenen Fehlers zurückgegeben.

Zurück | Anfang | Vor
xslt_errno | Hoch | xslt_fetch_result


xslt_fetch_result

(PHP 4 >= 4.0.3)

xslt_fetch_result -- Ruft einen (benannte) Resultatspeich ab

Beschreibung

string xslt_fetch_result ([int xh string result_name])

Ruft einen (benannte) Resultatspeicher des XSLT Prozessors ab, welcher durch den handle identifiziert worden ist. Ist der Speicher nicht ausdrücklich benannt worden, so wird der abgerufene Specherinhalt mit "/_result" benannt.

Zurück | Anfang | Vor
xslt_error | Hoch | xslt_free


xslt_free

(PHP 4 >= 4.0.3)

xslt_free -- Freigabe eines XSLT Prozessors

Beschreibung

void xslt_free (resource xh)

Der mit handle bezeichnete XSLT Prozessor wird freigegeben.

Zurück | Anfang | Vor
xslt_fetch_result | Hoch | xslt_openlog


xslt_openlog

(PHP 4 >= 4.0.3)

xslt_openlog -- Benennen einer Log-Datei für XSLT Prozessor-Meldungen

Beschreibung

bool xslt_openlog ([resource xh string logfile int loglevel])

Benennen einer Log-Datei, in welcher die Fehlermeldungen des XSLT Prozessors abgelegt werden sollen.

Zurück | Anfang | Vor
xslt_free | Hoch | xslt_output_begintransform


xslt_output_begintransform

(PHP 4 >= 4.0.3)

xslt_output_begintransform -- unknown

Beschreibung

unknown xslt_output_begintransform (unknown)

Zu dieser Funktion sind keine Prototyp Definitionen vorhanden.

Zurück | Anfang | Vor
xslt_openlog | Hoch | xslt_output_endtransform


xslt_output_endtransform

(PHP 4 >= 4.0.3)

xslt_output_endtransform -- unknown

Beschreibung

unknown xslt_output_endtransform (unknown)

Zu dieser Funktion sind keine Prototyp Definitionen vorhanden.

Zurück | Anfang | Vor
xslt_output_begintransform | Hoch | xslt_output_process


xslt_output_process

(unknown)

xslt_output_process -- unknown

Beschreibung

unknown xslt_process (unknown)

Zu dieser Funktion sind keine Prototyp Definitionen vorhanden.

Zurück | Anfang | Vor
xslt_output_endtransform | Hoch | xslt_run


xslt_run

(PHP 4 >= 4.0.3)

xslt_run -- Ein XSLT Stylesheet einer XML Datei zuweisen.

Beschreibung

bool xslt_run ([resource xh string xslt_file string xml_data_file string result array xslt_params array xslt_args]]])

Auf eine XML Datei (xml_data_file) ein XSL Stylesheet aus einer Datei (xslt_file stylesheet) anwenden. Das Stylesheet hat Zugang zu xslt_params und der Prozessor wird mit xslt_args gestartet. Das Resultat der XSLT Transformation wird in einem benannten Speicher abgelegt (default is "/_result").

Zurück | Anfang | Vor
xslt_output_process | Hoch | xslt_set_sax_handler


xslt_set_sax_handler

(PHP 4 >= 4.0.3)

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 den handle xh gegeben ist.

Zurück | Anfang | Vor
xslt_run | Hoch | xslt_transform


xslt_transform

(PHP 4 >= 4.0.3)

xslt_transform -- unknown

Beschreibung

unknown xslt_transform (unknown)

Zu dieser Funktion sind keine Prototyp Definitionen vorhanden.

Zurück | Anfang | Vor
xslt_set_sax_handler | Hoch | YAZ functions


YAZ functions

PHP Handbuch
Zurück Vor

LXXXI. YAZ functions

Introduction

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.

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/.

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 SQL APIs that are available for PHP. This means that sessions are stateless but shared amongst users, thus saving the connect and initialize phase steps in most cases.

Installation

Compile YAZ and install it. Build PHP with your favourite modules and add option --with-yaz. Your task is roughly the following:

gunzip -c yaz-1.6.tar.gz|tar xf -
gunzip -c php-4.0.X.tar.gz|tar xf -
cd yaz-1.6
./configure --prefix=/usr
make
make install
cd ../php-4.0.X
./configure --with-yaz=/usr/bin
make
make install

Example

PHP/YAZ keeps track of connections with targets (Z-Associations). A positive integer represents the ID of a particular association.

Beispiel 1. Parallel searching using YAZ()

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 in array host.

$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="1"
    name="host[]" value="z3950.bell-labs.com/books">
        BELL Labs Library
    <br>
    RPN Query:
    <input type="text" size="30" name="term">
    <input type="submit" name="action" value="Search">
    ';
} else {
    echo 'You searced for ' . htmlspecialchars($term) . '<br>';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i],"sutrs");
        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 ereg_replace("\n", "<br>\n",$rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}

Inhaltsverzeichnis
yaz_addinfo — Returns additional error information
yaz_close — Closes a YAZ connection
yaz_connect — Prepares for a connection and Z-association to a Z39.50 target.
yaz_errno — Returns error number
yaz_error — Returns error description
yaz_hits — Returns number of hits for last search
yaz_element — Specifies Element-Set Name for retrieval
yaz_database — Specifies the databases within a session
yaz_range — Specifies the maximum number of records to retrieve
yaz_record — Returns a record
yaz_search — Prepares for a search
yaz_present — Prepares for retrieval (Z39.50 present).
yaz_syntax — Specifies the preferred record syntax for retrieval.
yaz_scan — Prepares for a scan
yaz_scan_result — Returns Scan Response result
yaz_ccl_conf — Configure CCL parser
yaz_ccl_parse — Invoke CCL Parser
yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
yaz_wait — Wait for Z39.50 requests to complete
Zurück | Anfang | Vor
xslt_transform | Hoch | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1)

yaz_addinfo -- Returns additional error information

Description

int yaz_addinfo (int id)

Returns additional error message for target (last request). An empty string is returned if last operation was a success or if no additional information was provided by the target.

Zurück | Anfang | Vor
YAZ functions | Hoch | yaz_close


yaz_close

(PHP 4 >= 4.0.1)

yaz_close -- Closes a YAZ connection

Description

int yaz_close (int id)

Closes the Z-association given by id. The id is a target ID as returned by a previous yaz_connect() command.

Zurück | Anfang | Vor
yaz_addinfo | Hoch | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1)

yaz_connect -- Prepares for a connection and Z-association to a Z39.50 target.

Description

int yaz_connect (string zurl [, string authentication])

This function returns a positive ID on success; zero on failure.

Yaz_connect() prepares for a connection to a Z39.50 target. The zurl argument takes the form host[:port][/database]. If port is omitted 210 is used. If database is omitted Default is used. This function is non-blocking and doesn't attempt to establish a socket - it merely prepares a connect to be performed later when yaz_wait() is called.

Zurück | Anfang | Vor
yaz_close | Hoch | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1)

yaz_errno -- Returns error number

Description

int yaz_errno (int id)

Returns error for target (last request). A positive value is returned if the target returned a diagnostic code; a value of zero is returned if no errors occurred (success); negative value is returned for other errors (such as when the target closed connection, etc).

yaz_errno() should be called after network activity for each target - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Zurück | Anfang | Vor
yaz_connect | Hoch | yaz_error


yaz_error

(PHP 4 >= 4.0.1)

yaz_error -- Returns error description

Description

string yaz_error (int id)

Returns error message for target (last request). An empty string is returned if last operation was a success.

yaz_error() returns an english text message corresponding to the last error number as returned by yaz_errno().

Zurück | Anfang | Vor
yaz_errno | Hoch | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1)

yaz_hits -- Returns number of hits for last search

Description

int yaz_hits (int id)

Yaz_hits() returns number of hits for last search.

Zurück | Anfang | Vor
yaz_error | Hoch | yaz_element


yaz_element

(PHP 4 >= 4.0.1)

yaz_element -- Specifies Element-Set Name for retrieval

Description

int yaz_element (int id, string elementset)

This function is used in conjunction with yaz_search() and yaz_present() to specify the element set name for records to be retrieved. Most servers support F (full) and B (brief).

Returns true on success; false on error.

Zurück | Anfang | Vor
yaz_hits | Hoch | yaz_database


yaz_database

(unknown)

yaz_database -- Specifies the databases within a session

Description

int yaz_database (int 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.

Returns true on success; false on error.

Zurück | Anfang | Vor
yaz_element | Hoch | yaz_range


yaz_range

(PHP 4 >= 4.0.1)

yaz_range -- Specifies the maximum number of records to retrieve

Description

int yaz_range (int id, int start, int number)

This function is used in conjunction with yaz_search() to specify the maximum number of records to retrieve (number) and the first record position (start). If this function is not invoked (only yaz_search()) start is set to 1 and number is set to 10.

Returns true on success; false on error.

Zurück | Anfang | Vor
yaz_database | Hoch | yaz_record


yaz_record

(PHP 4 >= 4.0.1)

yaz_record -- Returns a record

Description

int yaz_record (int id, int pos, string type)

Returns record at position or empty string if no record exists at given position.

The yaz_record() function inspects a record in the current result set at the position specified. If no database record exists at the given position an empty string is returned. The argument, type, specifies the form of the returned record. If type is "string" the record is returned in a string representation suitable for printing (for XML and SUTRS). If type is "array" the record is returned as an array representation (for structured records).

Zurück | Anfang | Vor
yaz_range | Hoch | yaz_search


yaz_search

(PHP 4 >= 4.0.1)

yaz_search -- Prepares for a search

Description

int yaz_search (int id, string type, string query)

yaz_search() prepares for a search on the target with given id. The type represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query (RPN). 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 represenation 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 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

Syntax | 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.

The following illustrates valid query constructions:

computer

Matches documents where "computer" occur. No attributes are specified.

"donald knuth"

Matches documents where "donald knuth" occur.

@attr 1=4 art

Attribute type is 1 (Bib-1 use), attribute value is 4 Title), so this should match documents where "art" occur in the title.

@attrset gils @and @attr 1=4 art @attr 1=1003 "donald knuth"

The query as a whole uses the GILS attributeset. The query matches documents where "art" occur in the title and in which "donald knuth" occur in the author.

Zurück | Anfang | Vor
yaz_record | Hoch | yaz_present


yaz_present

(PHP 4 CVS only)

yaz_present -- Prepares for retrieval (Z39.50 present).

Description

int yaz_present(void);

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.

Zurück | Anfang | Vor
yaz_search | Hoch | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1)

yaz_syntax -- Specifies the preferred record syntax for retrieval.

Description

int yaz_syntax (int id, string syntax)

The syntax is 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 is used in conjunction with yaz_search() and yaz_present() to specify the preferred record syntax for retrieval.

Zurück | Anfang | Vor
yaz_present | Hoch | yaz_scan


yaz_scan

(PHP 4 CVS only)

yaz_scan -- Prepares for a scan

Description

int yaz_scan (int id, string type, string startterm [, array flags])

This function prepares for a Z39.50 Scan Request. Argument id specifies target ID. Starting term point for the scan is given by startterm. The form in which is the starting term is specified is given by type. Currently type rpn is supported. The optional 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 tranfer the Scan Request to the target 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

      function scan_titles($id, $starterm) {
        yaz_scan($id,"rpn", "@attr 1=4 " . $starterm);
        yaz_wait();
        $errno = yaz_errno($id);
        if ($errno == 0) {
          $ar = yaz_scan_result($id,&$options);
          echo 'Scan ok; ';
          $ar = yaz_scan_result($id, &$options);
          while(list($key,$val)=each($options)) {
             echo "$key = $val  ";
          }
          echo '<br><table><tr><td>';
          while(list($key,list($k, $term, $tcount))=each($ar)) {
            if (empty($k)) continue;
            echo "<tr><td>$term</td><td>";
            echo $tcount;
            echo "</td></tr>";
          }
          echo '</table>';
        } else {
          echo "Scan failed. Error: " . yaz_error($id) . "<br>";
        }
      }

Zurück | Anfang | Vor
yaz_syntax | Hoch | yaz_scan_result


yaz_scan_result

(PHP 4 CVS only)

yaz_scan_result -- Returns Scan Response result

Description

array yaz_scan_result (int id [, array & result])

Given a target ID this function returns and array with terms as received from the target in the last Scan Response. This function returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where first item is term, second item is result-count. If the 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 | Anfang | Vor
yaz_scan | Hoch | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 CVS only)

yaz_ccl_conf -- Configure CCL parser

Description

int yaz_ccl_conf (int id, array config)

This function configures the CCL query parser for a target 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 a target ID.

      $field["ti"] = "1=4";
      $field["au"] = "1=1";
      $field["isbn"] = "1=7";
      yaz_ccl_conf($id,$field);

Zurück | Anfang | Vor
yaz_scan_result | Hoch | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 CVS only)

yaz_ccl_parse -- Invoke CCL Parser

Description

int yaz_ccl_parse (int id, string query, array &result)

This function invokes the 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: errorcodeCCL error code (integer), errorstringCCL error string, and errorposapproximate position in query of failure (integer is character position).

Zurück | Anfang | Vor
yaz_ccl_conf | Hoch | yaz_itemorder


yaz_itemorder

(PHP 4 CVS only)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Description

int yaz_itemorder (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 | Anfang | Vor
yaz_ccl_parse | Hoch | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1)

yaz_wait -- Wait for Z39.50 requests to complete

Description

int yaz_wait(void);

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 targets have either completed all requests or aborted (in case of errors).

Zurück | Anfang | Vor
yaz_itemorder | Hoch | YP/NIS Functions


YP/NIS Functions

PHP Handbuch
Zurück Vor

LXXXII. YP/NIS Functions

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file). For more information refer to the NIS manpage and Introduction to YP/NIS. There is also a book called Managing NFS and NIS by Hal Stern.

To get these functions to work, you have to configure PHP with --with-yp(PHP 3) or --enable-yp(PHP 4).

Inhaltsverzeichnis
yp_get_default_domain — Fetches the machine's default NIS domain
yp_order — Returns the order number for a map
yp_master — Returns the machine name of the master NIS server for a map
yp_match — Returns the matched line
yp_first — Returns the first key-value pair from the named map
yp_next — Returns the next key-value pair in the named map.
Zurück | Anfang | Vor
yaz_wait | Hoch | yp_get_default_domain


yp_get_default_domain

(PHP 3>= 3.0.7, PHP 4 )

yp_get_default_domain -- Fetches the machine's default NIS domain

Description

int yp_get_default_domain (void )

Yp_get_default_domain() returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

A NIS domain can be described a group of NIS maps. Every host that needs to look up information binds itself to a certain domain. Refer to the documents mentioned at the beginning for more detailed information.

Beispiel 1. Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>

Zurück | Anfang | Vor
YP/NIS Functions | Hoch | yp_order


yp_order

(PHP 3>= 3.0.7, PHP 4 )

yp_order -- Returns the order number for a map

Description

int yp_order (string domain, string map)

Yp_order() returns the order number for a map or FALSE.

Beispiel 1. Example for the NIS order

<?php
    $number = yp_order($domain,$mapname);
    echo "Order number for this map is: " . $order;
?>

See also yp-get-default-domain().

Zurück | Anfang | Vor
yp_get_default_domain | Hoch | yp_master


yp_master

(PHP 3>= 3.0.7, PHP 4 )

yp_master -- Returns the machine name of the master NIS server for a map

Description

string yp_master (string domain, string map)

Yp_master() returns the machine name of the master NIS server for a map.

Beispiel 1. Example for the NIS master

<?php
$number = yp_master ($domain, $mapname);
echo "Master for this map is: " . $master;
?>

See also yp-get-default-domain().

Zurück | Anfang | Vor
yp_order | Hoch | yp_match


yp_match

(PHP 3>= 3.0.7, PHP 4 )

yp_match -- Returns the matched line

Description

string yp_match (string domain, string map, string key)

Yp_match() returns the value associated with the passed key out of the specified map or FALSE. This key must be exact.

Beispiel 1. Example for NIS match

<?php
$entry = yp_match ($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

In this case this could be: joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

See also yp-get-default-domain()

Zurück | Anfang | Vor
yp_master | Hoch | yp_first


yp_first

(PHP 3>= 3.0.7, PHP 4 )

yp_first -- Returns the first key-value pair from the named map

Description

array yp_first (string domain, string map)

Yp_first() returns the first key-value pair from the named map in the named domain, otherwise FALSE.

Beispiel 1. Example for the NIS first

<?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 | Anfang | Vor
yp_match | Hoch | yp_next


yp_next

(PHP 3>= 3.0.7, PHP 4 )

yp_next -- Returns the next key-value pair in the named map.

Description

array yp_next (string domain, string map, string key)

Yp_next() returns the next key-value pair in the named map after the specified key or FALSE.

Beispiel 1. Example for NIS next

<?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];
?>

See also yp-get-default-domain().

Zurück | Anfang | Vor
yp_first | Hoch | Zlib Compression Functions


Zlib Compression Functions

PHP Handbuch
Zurück Vor

LXXXIII. Zlib Compression Functions

This module uses the functions of zlib by Jean-loup Gailly and Mark Adler to transparently read and write gzip (.gz) compressed files. You have to use a zlib version >= 1.0.9 with this module.

This module contains versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).

Anmerkung: The current CVS version 4.0.4-dev introduces a fopen-wrapper for .gz-files, so that you can use a special 'zlib:' URL to access compressed files transparently using the normal f*() file access functions if you prepend the filename or path with a 'zlib:' prefix when calling fopen().

This feature requires a C runtime library that provides the fopencookie() function. To my current knowledge the GNU libc is the only library that provides this feature.

Small code example

Opens a temporary file and writes a test string to it, then it prints out the content of this file twice.

Beispiel 1. Small Zlib Example

<?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";

// open file for writing with maximum compression
$zp = gzopen($filename, "w9");

// write string to file
gzwrite($zp, $s);

// close file
gzclose($zp);

// open file for reading
$zp = gzopen($filename, "r");

// read 3 char
print gzread($zp, 3);

// output until end of the file and close it.
gzpassthru($zp);

print "\n";

// open file and print content (the 2nd time).
if (readgzfile($filename) != strlen($s)) {
        echo "Error with zlib functions!";
}
unlink($filename);
print "</pre>\n</h1></body>\n</html>\n";

?>
Inhaltsverzeichnis
gzclose — Close an open gz-file pointer
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
gzopen — Open gz-file
gzpassthru — Output all remaining data on a gz-file pointer
gzputs — Write to a gz-file pointer
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
gzwrite — Binary-safe gz-file write
readgzfile — Output a gz-file
gzcompress — Compress a string
gzuncompress — Uncompress a deflated string
gzdeflate — Deflate a string
gzinflate — Inflate a deflated string
gzencode — Create a gzip compressed string
Zurück | Anfang | Vor
yp_next | Hoch | gzclose


gzclose

(PHP 3, PHP 4 )

gzclose -- Close an open gz-file pointer

Description

int gzclose (int zp)

The gz-file pointed to by zp is closed.

Returns true on success and false on failure.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

Zurück | Anfang | Vor
Zlib Compression Functions | Hoch | gzeof


gzeof

(PHP 3, PHP 4 )

gzeof -- Test for end-of-file on a gz-file pointer

Description

int gzeof (int 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 | Anfang | Vor
gzclose | Hoch | gzfile


gzfile

(PHP 3, PHP 4 )

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 | Anfang | Vor
gzeof | Hoch | gzgetc


gzgetc

(PHP 3, PHP 4 )

gzgetc -- Get character from gz-file pointer

Description

string gzgetc (int zp)

Returns a string containing a single (uncompressed) character read from the file pointed to by zp. Returns FALSE on EOF (as does 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 | Anfang | Vor
gzfile | Hoch | gzgets


gzgets

(PHP 3, PHP 4 )

gzgets -- Get line from file pointer

Description

string gzgets (int 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 | Anfang | Vor
gzgetc | Hoch | gzgetss


gzgetss

(PHP 3, PHP 4 )

gzgetss -- Get line from gz-file pointer and strip HTML tags

Description

string gzgetss (int 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, PHP4B3.

See also gzgets(), gzopen(), and strip_tags().

Zurück | Anfang | Vor
gzgets | Hoch | gzopen


gzopen

(PHP 3, PHP 4 )

gzopen -- Open gz-file

Description

int 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

$fp = gzopen ("/tmp/file.gz", "r");

See also gzclose().

Zurück | Anfang | Vor
gzgetss | Hoch | gzpassthru


gzpassthru

(PHP 3, PHP 4 )

gzpassthru -- Output all remaining data on a gz-file pointer

Description

int gzpassthru (int 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().

The gz-file is closed when gzpassthru() is done reading it (leaving zp useless).

Zurück | Anfang | Vor
gzopen | Hoch | gzputs


gzputs

(PHP 3, PHP 4 )

gzputs -- Write to a gz-file pointer

Description

int gzputs (int zp, string str [, int length])

Gzputs() is an alias to gzwrite(), and is identical in every way.

Zurück | Anfang | Vor
gzpassthru | Hoch | gzread


gzread

(PHP 3, PHP 4 )

gzread -- Binary-safe gz-file read

Description

string gzread (int 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.

// 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 | Anfang | Vor
gzputs | Hoch | gzrewind


gzrewind

(PHP 3, PHP 4 )

gzrewind -- Rewind the position of a gz-file pointer

Description

int gzrewind (int 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 | Anfang | Vor
gzread | Hoch | gzseek


gzseek

(PHP 3, PHP 4 )

gzseek -- Seek on a gz-file pointer

Description

int gzseek (int 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 | Anfang | Vor
gzrewind | Hoch | gztell


gztell

(PHP 3, PHP 4 )

gztell -- Tell gz-file pointer read/write position

Description

int gztell (int 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 | Anfang | Vor
gzseek | Hoch | gzwrite


gzwrite

(PHP 3, PHP 4 )

gzwrite -- Binary-safe gz-file write

Description

int gzwrite (int 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.

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 | Anfang | Vor
gztell | Hoch | readgzfile


readgzfile

(PHP 3, PHP 4 )

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 | Anfang | Vor
gzwrite | Hoch | gzcompress


gzcompress

(PHP 4 >= 4.0.1)

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 | Anfang | Vor
readgzfile | Hoch | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1)

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 256 times the length of the compressed input data or more than the optional parameter length.

See also gzdeflate(),
gzinflate(),
gzcompress(),
gzencode().

Zurück | Anfang | Vor
gzcompress | Hoch | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4)

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.

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 | Anfang | Vor
gzuncompress | Hoch | gzinflate


gzinflate

(PHP 4 >= 4.0.4)

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 256 times the length of the compressed input data or more than the optional parameter length.

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzencode().

Zurück | Anfang | Vor
gzdeflate | Hoch | gzencode


gzencode

(PHP 4 >= 4.0.4)

gzencode -- Create a gzip compressed string

Description

string gzencode (string data [, int level])

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 1.

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("", "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 | Anfang | Vor
gzinflate | Hoch | PEAR: the PHP Extension and Application Repository


PEAR: the PHP Extension and Application Repository

PHP Handbuch
Zurück Vor

V. PEAR: the PHP Extension and Application Repository

Zurück | Anfang | Vor
gzencode |  | Anhang


Anhang

PHP Handbuch
Zurück Vor

VI. Anhang

Inhaltsverzeichnis
A. Migrating von PHP/FI 2.0 zu PHP 3.0
B. Migrating from PHP 3.0 to PHP 4.0
C. PHP development
D. Der PHP-Debugger
E. PHP reserved words
F. PHP's resource types
Zurück | Anfang | Vor
PEAR: the PHP Extension and Application Repository |  | Migrating von PHP/FI 2.0 zu PHP 3.0


Migrating von PHP/FI 2.0 zu PHP 3.0

PHP Handbuch
Zurück Vor

Anhang A. Migrating 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, daß 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 | Anfang | Vor
Anhang | Hoch | Start-/End-Tags


Start-/End-Tags

Das Erste, was Sie vermutlich feststellen werden ist, daß sich die Start- und End-Tags von PHP geändert haben. Die alte Form <? > wurde durch drei neue Möglichkeiten ersetzt:

Beispiel A-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 A-2. Migration: Erste neue Start-/End-Tags

<? echo "Das ist PHP 3.0 Ccode!\n"; ?>
Beachten Sie, daß 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 A-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 A-4. Migration: third new start/end tags

<script language="php">

  echo "Das ist PHP 3.0 Code!\n";

</script>

Zurück | Anfang | Vor
Migrating von PHP/FI 2.0 zu PHP 3.0 | Hoch | 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 A-5. Migration: Alte if..endif Syntax

if ($foo);
    echo "jau\n";
elseif ($bar);
    echo "fast\n";
else;
    echo "nö\n";
endif;

Beispiel A-6. Migration: Neue if..endif Syntax

if ($foo):
    echo "jau\n";
elseif ($bar):
    echo "fast\n";
else:
    echo "nö\n";
endif;
Beachten Sie, daß Semikolons in allen Anweisungen durch Doppelpunkte ersetz wurden außer in der, welche die Anweisung schließt (endif).

Zurück | Anfang | Vor
Start-/End-Tags | Hoch | while Syntax


while Syntax

wie auch bei if..endif hat sich auch die Syntax von while..endwhile geändert:

Beispiel A-7. Migration: Alte while..endwhile Syntax

while ($noch_mehr);
    ...
endwhile;

Beispiel A-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 | Anfang | Vor
if..endif Syntax | Hoch | 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, daß 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, das die Schleife durchläuft. In PHP 3.0, when a string is compared with an integer, an integer comparison is made (the string is converted to an integer). This results in comparing atoi("") which is 0, and variablelist which is also 0, and since 0==0, the loop doesn't go through even once.

Dies zu reparieren ist einfach. Ersetzen Sie das While-Statement mit:

while ((string)$key != "") {

Zurück | Anfang | Vor
while Syntax | Hoch | Ä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 | Anfang | Vor
Ausdruckstypen | Hoch | 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 | Anfang | Vor
Änderung der Fehlermeldungen | Hoch | Function true/false return values


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 A-9. Migration from 2.0: return values, old code

$fp = fopen($file, "r");
if ($fp == -1);
    echo("Konnte $file zum lesen nicht öffnen<br>\n");
endif;

Beispiel A-10. Migration from 2.0: return values, new code

$fp = @fopen($file, "r") or print("Konnte $file zum lesen nicht öffnen<br>\n");

Zurück | Anfang | Vor
Short-circuited boolean evaluation | Hoch | Andere Inkompatibilitäten


Andere Inkompatibilitäten

  • Das PHP 3.0 Apache Modul unterstützt keine Apache Versions vor 1.2 mehr. Apache 1.2 oder neuer required.

  • 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.

  • Reading arrays with $array[] is no longer supported

    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 A-11. Migration from 2.0: concatenation for strings

echo "1" + "1";

In PHP 2.0 this would echo 11, in PHP 3.0 it would echo 2. Instead use:

echo "1"."1";

$a = 1;
$b = 1;
echo $a + $b;

This would echo 2 in both PHP 2.0 and 3.0.

$a = 1;
$b = 1;
echo $a.$b;
This will echo 11 in PHP 3.0.

Zurück | Anfang | Vor
Function true/false return values | Hoch | Migrating from PHP 3.0 to PHP 4.0


Migrating from PHP 3.0 to PHP 4.0

PHP Handbuch
Zurück Vor

Anhang B. Migrating from PHP 3.0 to PHP 4.0

Inhaltsverzeichnis
What has changed in PHP 4.0
Parser behavior
Error reporting
Initializers
empty("0")
Missing functions
PHP 3.0 extension
Variable substitution in strings
Cookies

What has changed in PHP 4.0

PHP 4.0 and the integrated Zend engine have greatly inproved PHPs performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 3.0 to 4.0 should be much easier than migrating from PHP/FI 2.0 to PHP 3.0. A lot of existing PHP 3.0 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 | Anfang | Vor
Andere Inkompatibilitäten | Hoch | Parser behavior


Parser behavior

Parsing and execution are now two completely seperated 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 requirenments introduced with this split is that required and included files now have to be syntactically complete. You can no longer spread the different controling 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 controling keywords and corresponding curly braces {...} have to be within the same compile unit (file or eval()ed string).

This should not harm to 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.0 code is returning values from a required file. Returning a value from an included file is still possible.

Zurück | Anfang | Vor
Migrating from PHP 3.0 to PHP 4.0 | Hoch | Error reporting


Error reporting

Configuration changes

With PHP 3.0 the error reporting level was set as a simple numeric value formed by summing up the numbers related to different error levels. Usual values where 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.0 now has a greater set of different error and warning levels and comes with a configuration parser that now allows for symbolic constants to be used for setting up 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

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 parese 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 unreproduceable 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 enginge can be considererd mature enough nowadays to not cause this kind of strange behavior.

Additional warning messages

A lot of existing PHP 3.0 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.0 will output a lot of notice messages in such situations where PHP 3.0 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.0 and 4.0 will fall back to interprete theese 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.0 will now warn you whenever you use unquoted string constants as for example in $HTTP_SERVER_VARS[REQUEST_METHOD]. Changing it to $HTTP_SERVER_VARS['REQUEST_METHOD'] will make the parser happy and greatly improve the style and security of your code.

Another thing PHP 4.0 will now tell you about is the use of uninitialized variables or array elements.

Zurück | Anfang | Vor
Parser behavior | Hoch | Initializers


Initializers

Static variable and class member initializers only accept scalar values while in PHP 3.0 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 | Anfang | Vor
Error reporting | Hoch | empty("0")


empty("0")

The perhaps most cotroversal change in behavior has happend 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.0.

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 had it might break your code in a rather subtele was, leading to misbehavior that is hard to track down if you do not know about what to look for.

Zurück | Anfang | Vor
Initializers | Hoch | Missing functions


Missing functions

While PHP 4.0 comes with a lot of new features, functions and extensions, you may still find some functions from version 3.0 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.0 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.0 now seperates 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 happend by then. So the function short_tags() has ceased to exist. You can still change the parsers behavior by setting appropriate values in the php.ini file.

Another feature from PHP 3.0 that didn't make it into 4.0 is the experimental debugging interface as described in ??? in this manual. A seperate true debuger is promissed to be released as a Zend product but hasn't become visible yet.

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 a literal different in PHP 4.0 so that it no longer counts as a 'real' function.

This has no direct consequences as the behavior of unset() didn't change, but testing for "unset" usign function_exists() will return false as it would with othern lowlevel functions like 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 | Anfang | Vor
empty("0") | Hoch | PHP 3.0 extension


PHP 3.0 extension

Extensions written for PHP 3.0 will not work with PHP 4.0 anymore, neither as binaries nor at the source level. It is not to difficult to port your extensions to PHP 4.0 if you have access to the original sources. A detailed description of the actual porting process is not part of this text (yet).

Zurück | Anfang | Vor
Missing functions | Hoch | Variable substitution in strings


Variable substitution in strings

PHP 4.0 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.0 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.0. 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 favourite search-and-replace tool.

Zurück | Anfang | Vor
PHP 3.0 extension | Hoch | Cookies


Cookies

PHP 3.0 hat the bad habit of setting cookies in the reverse order of the setcookie() calls in your code. PHP 4.0 breaks with this habbit 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 | Anfang | Vor
Variable substitution in strings | Hoch | PHP development


PHP development

PHP Handbuch
Zurück Vor

Anhang C. PHP development

Inhaltsverzeichnis
Adding functions to PHP3
Calling User Functions
Reporting Errors

Adding functions to PHP3

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 C-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 C-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 C-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", PHP3 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) [1]

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

[1]

Symbol tables in PHP 3.0 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 C-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Beispiel C-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 3.0 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 appropiately, using hash_exists() or hash_find().

Next, initialize the array:

Beispiel C-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 C-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 3.0 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 C-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 C-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 C-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 3.0 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 destructotion 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 PHP3 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.

Fußnoten

[1]

Be careful here. 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.

Zurück | Anfang | Vor
Cookies | Hoch | 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 | Anfang | Vor
PHP development | Hoch | 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.

Zurück | Anfang | Vor
Calling User Functions | Hoch | Der PHP-Debugger


Der PHP-Debugger

PHP Handbuch
Zurück Vor

Anhang D. 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 | Anfang | Vor
Reporting Errors | Hoch | 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 D-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 D-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 D-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 | Anfang | Vor
Der PHP-Debugger | Hoch | PHP reserved words


PHP reserved words

PHP Handbuch
Zurück Vor

Anhang E. PHP reserved words

Here is the list of PHP reserved words and usual constants.

  • and.

  • break.

  • case.

  • class.

  • continue.

  • default.

  • do.

  • else.

  • elseif.

  • empty().

  • endfor.

  • endif.

  • endswitch.

  • endwhile.

  • E_ALL.

  • E_PARSE.

  • E_ERROR.

  • E_WARNING.

  • extends.

  • FALSE.

  • for.

  • foreach.

  • function.

  • if.

  • include().

  • include_once().

  • global.

  • list().

  • new.

  • not.

  • or.

  • PHP_OS.

  • PHP_VERSION.

  • require().

  • require_once().

  • return.

  • static.

  • switch.

  • this.

  • TRUE.

  • var.

  • xor.

  • virtual().

  • while.

  • __FILE__.

  • __LINE__.

Zurück | Anfang | Vor
Debugger-Protokoll | Hoch | PHP's resource types


PHP's resource types

PHP Handbuch
Zurück

Anhang F. PHP's resource types

Here is the function's list which create, use or destroy PHP resources. You know when a variable is a resource by using is_resource(), and what resource type is this variable by using get_resource_type().

Tabelle F-1. Ressource types

Resource type's name | Created by | Used by | Destroyed by | Definition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | None | 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() | None | COM object reference
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 document with CPDF lib
cpdf outline
curl | curl_init() | curl_init(), curl_exec() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Link to DBM database
dba | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA base
dba persistent | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistant link to DBA base
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() | Link to Dbase base
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 stream
gd | imagecreate(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring() | 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() | imagedestroy() | GD Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Font for GD
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PS font for GD
gd PS encoding
hyperwave link | 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() | None | GMP Number
hyperwave link persistent | 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() | Link to Hyperwave server
hyperwave document | 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() | None | Persistant link to Hyperwave server
icap | 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 object
imap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Link to icap server
imap persistent | 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() | Link to IMAP, POP3 serveur
imap chain persistent
ingres
ingres persistent | 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() | Persistant link to ingresII base
interbase result | 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() | None | Link to ingresII base
interbase query | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase blob | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase link
interbase link persistent | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase transaction | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Persistant link to Interbase database
java | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
ldap result
ldap link | 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 search result
mcal | 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 connexion
msql query | 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() | Link to calendar server
msql link | 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 result
msql link persistent | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Link to mSQL database
mssql result | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | None | Persistant link to mSQL
mssql link | 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 result
mssql link persistent | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Link to Microsft SQL Server database
mysql result | mssql_pconnect() | mssql_query(), mssql_select_db() | None | Persistant link to Microsft SQL Server
mysql link | 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 result
mysql link persistent | 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() | Link to MySQL database
oci8 statement | 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() | None | Persistant link to MySQL database
oci8 connection | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
oci8 descriptor | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Link to Oracle database
oci8 server
oci8 session
odbc result
odbc link | 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 result
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() | odbc_close() | Link to ODBC database
velocis 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() | None | Persistant link to ODBC database
velocis result
OpenSSL key
OpenSSL X.509 | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
oracle cursor
oracle link | 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 persistent | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Link to oracle database
pdf image | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | None | Persistant link to oracle database
pdf outline | 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() | Image in PDF file
pdf document
pgsql link | 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 persistent | 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() | Link to PostGreSQL database
pgsql result | 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() | None | Persistant link to PostGreSQL database
pgsql large object | 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 result
pgsql string | pg_getlastoid(), pg_loimport(), pg_loimport() | pg_loopen(), pg_getlastoid(), pg_locreate(), pg_loexport(), pg_loread(), pg_loreadall(), pg_lounlink(), pg_lowrite() | pg_loclose() | PostGreSQL Large Object
printer
printer pen
printer font
printer brush
pspell
pspell config | 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() | None | pspell dictionary
Sablotron XSLT | pspell_config_create() | pspell_new_config() | None | pspell configuration
shmop | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler() | xslt_free() | XSLT parser
sockets file descriptor set | shm_open() | shm_read(), shm_write(), shm_size(), shm_delete() | shm_close()
sockets i/o vector | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
dir
file | dir() | readdir(), rewinddir() | closedir() | Dir handle
pipe | fopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
socket | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
sybase-db link | fsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
sybase-db link persistent | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase Database using DB librairy
sybase-db result | sybase_pconnect() | sybase_query(), sybase_select_db() | None | Persistant link to Sybase database using DB librairy
sybase-ct link | 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 result using DB librairy
sybase-ct link persistent | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase Database using CT librairy
sybase-ct result | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | None | Persistant link to Sybase database using CT librairy
sysvsem | 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 result using CT librairy
sysvshm | sem_get() | sem_acquire() | sem_release() | System V Semaphore
wddx | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
xml | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
zlib | 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

Zurück | Anfang
PHP reserved words | Hoch


PHP Handbuch

Copyright

Dieses Handbuch ist urheberrechtlich geschützt. Die Mitglieder der PHP-Dokumentationsgruppe sind auf dem Titelblatt aufgeführt.

Dieses Handbuch kann unter den Bedingungen der GNU General Public License, welche von der Free Software Foundation veröffentlicht wurde, weiterverteilt werden. Es ist entweder die Version 2 oder eine spätere Version der Lizenz zu benutzen.

This manual is © Copyright 1997, 1998, 1999, 2000, 2001 the PHP Documentation Group. The members of this group are listed on the front page of this manual.

This manual can be redistributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Anfang


satellite_caught_exception

(PHP 4 >= 4.0.3)

satellite_caught_exception -- See if an exception was caught from the previous function

Description

bool satellite_caught_exception ()

This function returns true if an exception has been caught.

Beispiel 1. Sample IDL file

/* ++?????++ Out of Cheese Error. Redo From Start. */
exception OutOfCheeseError {
    int parameter;
}

interface AnotherInterface {
    void AskWhy() raises (OutOfCheeseError);
}

Beispiel 2. PHP code for handling CORBA exceptions

<?php
$obj = new OrbitObject ($ior);

$obj->AskWhy();

if (satellite_caught_exception()) {
    if ("IDL:OutOfCheeseError:1.0" == satellite_exception_id()) {
        $exception = satellite_exception_value();
        echo $exception->parameter;
    }
}
?>

Zurück | Anfang | Vor
OrbitStruct | Hoch | satellite_exception_id


satellite_exception_id

(PHP 4 >= 4.0.3)

satellite_exception_id -- Get the repository id for the latest excetpion.

Description

string satellite_exception_id ()

Return a repository id string. (E.g. "IDL:MyException:1.0".) For example usage see satellite_caught_exception().

Zurück | Anfang | Vor
satellite_caught_exception | Hoch | satellite_exception_value


satellite_exception_value

(PHP 4 >= 4.0.3)

satellite_exception_value -- Get the exception struct for the latest exception

Description

OrbitStruct satellite_exception_value ()

Return an exception struct. For example usage see satellite_caught_exception().

Zurück | Anfang | Vor
satellite_exception_id | Hoch | Semaphor und Shared Memory Funktionen


shmop_close

(PHP 4 >= 4.0.4)

shmop_close -- Close shared memory block

Description

int shmop_close (int shmid)

shmop_close() is used to close a shared memory block.

shmop_close() takes the shmid, which is the shared memory block identifier created by shmop_open().

Beispiel 1. Closing shared memory block

<?php
shmop_close($shm_id);
?>

This example will close shared memory block identified by $shm_id.

Zurück | Anfang | Vor
shmop_delete | Hoch | Shockwave Flash functions


shmop_delete

(PHP 4 >= 4.0.4)

shmop_delete -- Delete shared memory block

Description

int shmop_delete (int shmid)

shmop_delete() is used to delete a shared memory block.

shmop_delete() takes the shmid, which is the shared memory block identifier created by shmop_open(). On success 1 is returned, on failure 0 is returned.

Beispiel 1. Deleting shared memory block

<?php
shmop_delete($shm_id);
?>

This example will delete shared memory block identified by $shm_id.

Zurück | Anfang | Vor
shmop_size | Hoch | shmop_close


shmop_open

(PHP 4 >= 4.0.4)

shmop_open -- Create or open shared memory block

Description

int shmop_open (int key, string flags, int mode, int size)

shmop_open() can create or open a shared memory block.

shmop_open() takes 4 parameters: key, which is the system's id for the shared memory block, this parameter can be passed as a decimal or hex. The second parameter are the flags that you can use:

  • "a" for access (sets IPC_EXCL) use this flag when you need to open an existing shared memory segment

  • "c" for create (sets IPC_CREATE) use this flag when you need to create a new shared memory segment.

The third parameter is the mode, which are the permissions that you wish to assign to your memory segment, those are the same as permission for a file. Permissions need to be passed in octal form ex. 0644. The last parameter is size of the shared memory block you wish to create in bytes.

Anmerkung: Note: the 3rd and 4th should be entered as 0 if you are opening an existing memory segment. On success shmop_open() will return an id that you can use to access the shared memory segment you've created.

Beispiel 1. Create a new shared memory block

<?php
$shm_id = shmop_open(0x0fff, "c", 0644, 100);
?>

This example opened a shared memory block with a system id of 0x0fff.

Zurück | Anfang | Vor
Shared Memory Functions | Hoch | shmop_read


shmop_read

(PHP 4 >= 4.0.4)

shmop_read -- Read data from shared memory block

Description

string shmop_read (int shmid, int start, int count)

shmop_read() will read a string from shared memory block.

shmop_read() takes 3 parameters: shmid, which is the shared memory block identifier created by shmop_open(), offset from which to start reading and count on the number of bytes to read.

Beispiel 1. Reading shared memory block

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

This example will read 50 bytes from shared memory block and place the data inside $shm_data.

Zurück | Anfang | Vor
shmop_open | Hoch | shmop_write


shmop_write

(PHP 4 >= 4.0.4)

shmop_write -- Write data into shared memory block

Description

int shmop_write (int shmid, string data, int offset)

shmop_write() will write a string into shared memory block.

shmop_write() takes 3 parameters: shmid, which is the shared memory block identifier created by shmop_open(), data, a string that you want to write into shared memory block and offset, which specifies where to start writing data inside the shared memory segment.

Beispiel 1. Writing to shared memory block

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

Zurück | Anfang | Vor
shmop_read | Hoch | shmop_size